mirror of
https://gitee.com/csharpui/CPF.git
synced 2026-02-26 21:53:05 +08:00
152 lines
4.7 KiB
C#
152 lines
4.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace CPF.Controls
|
|
{
|
|
/// <summary>
|
|
/// It exposes scrolling properties, methods for logical scrolling, computing
|
|
/// which children are visible, and measuring/drawing/offsetting/clipping content.
|
|
/// </summary>
|
|
public interface IScrollInfo
|
|
{
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Scroll content by one line to the top.
|
|
/// </summary>
|
|
void LineUp();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one line to the bottom.
|
|
/// </summary>
|
|
void LineDown();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one line to the left.
|
|
/// </summary>
|
|
void LineLeft();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one line to the right.
|
|
/// </summary>
|
|
void LineRight();
|
|
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the top.
|
|
/// </summary>
|
|
void PageUp();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the bottom.
|
|
/// </summary>
|
|
void PageDown();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the left.
|
|
/// </summary>
|
|
void PageLeft();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the right.
|
|
/// </summary>
|
|
void PageRight();
|
|
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the top.
|
|
/// </summary>
|
|
void MouseWheelUp();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the bottom.
|
|
/// </summary>
|
|
void MouseWheelDown();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the left.
|
|
/// </summary>
|
|
void MouseWheelLeft();
|
|
|
|
/// <summary>
|
|
/// Scroll content by one page to the right.
|
|
/// </summary>
|
|
void MouseWheelRight();
|
|
|
|
/// <summary>
|
|
/// Set the HorizontalOffset to the passed value.
|
|
/// An implementation may coerce this value into a valid range, typically inclusively between 0 and <see cref="ExtentWidth" /> less <see cref="ViewportWidth" />.
|
|
/// </summary>
|
|
void SetHorizontalOffset(float offset);
|
|
|
|
/// <summary>
|
|
/// Set the VerticalOffset to the passed value.
|
|
/// An implementation may coerce this value into a valid range, typically inclusively between 0 and <see cref="ExtentHeight" /> less <see cref="ViewportHeight" />.
|
|
/// </summary>
|
|
void SetVerticalOffset(float offset);
|
|
|
|
#endregion
|
|
|
|
//-------------------------------------------------------------------
|
|
//
|
|
// Public Properties
|
|
//
|
|
//-------------------------------------------------------------------
|
|
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// This property indicates to the IScrollInfo whether or not it can scroll in the vertical given dimension.
|
|
/// </summary>
|
|
bool CanVerticallyScroll { get; set; }
|
|
|
|
/// <summary>
|
|
/// This property indicates to the IScrollInfo whether or not it can scroll in the horizontal given dimension.
|
|
/// </summary>
|
|
bool CanHorizontallyScroll { get; set; }
|
|
|
|
/// <summary>
|
|
/// ExtentWidth contains the full horizontal range of the scrolled content.
|
|
/// </summary>
|
|
float ExtentWidth { get; }
|
|
|
|
/// <summary>
|
|
/// ExtentHeight contains the full vertical range of the scrolled content.
|
|
/// </summary>
|
|
float ExtentHeight { get; }
|
|
|
|
/// <summary>
|
|
/// ViewportWidth contains the currently visible horizontal range of the scrolled content.
|
|
/// </summary>
|
|
float ViewportWidth { get; }
|
|
|
|
/// <summary>
|
|
/// ViewportHeight contains the currently visible vertical range of the scrolled content.
|
|
/// </summary>
|
|
float ViewportHeight { get; }
|
|
|
|
/// <summary>
|
|
/// HorizontalOffset is the horizontal offset into the scrolled content that represents the first unit visible.
|
|
/// </summary>
|
|
float HorizontalOffset { get; }
|
|
|
|
/// <summary>
|
|
/// VerticalOffset is the vertical offset into the scrolled content that represents the first unit visible.
|
|
/// </summary>
|
|
float VerticalOffset { get; }
|
|
|
|
/// <summary>
|
|
/// ScrollOwner is the container that controls any scrollbars, headers, etc... that are dependant
|
|
/// on this IScrollInfo's properties. Implementers of IScrollInfo should call InvalidateScrollInfo()
|
|
/// on this object when properties change.
|
|
/// </summary>
|
|
ScrollViewer ScrollOwner { get; set; }
|
|
#endregion
|
|
/// <summary>
|
|
/// 滚动或者视口变化
|
|
/// </summary>
|
|
event EventHandler ScrollChanged;
|
|
}
|
|
}
|