C# Класс ZoomAndPan.ZoomAndPanControl

A class that wraps up zooming and panning of it's content.
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
AnimationDurationProperty DependencyProperty
ContentOffsetXProperty DependencyProperty
ContentOffsetYProperty DependencyProperty
ContentScalableProperty DependencyProperty
ContentScaleProperty DependencyProperty
ContentViewportHeightProperty DependencyProperty
ContentViewportWidthProperty DependencyProperty
ContentZoomFocusXProperty DependencyProperty
ContentZoomFocusYProperty DependencyProperty
IsMouseWheelScrollingEnabledProperty DependencyProperty
MaxContentScaleProperty DependencyProperty
MinContentScaleProperty DependencyProperty
ViewportZoomFocusXProperty DependencyProperty
ViewportZoomFocusYProperty DependencyProperty

Открытые методы

Метод Описание
AnimatedScaleToFit ( ) : void

Do animation that scales the content so that it fits completely in the control.

AnimatedSnapTo ( Point contentPoint ) : void

Use animation to center the view on the specified point (in content coordinates).

AnimatedZoomAboutPoint ( double newContentScale, Point contentZoomFocus ) : void

Zoom in/out centered on the specified point (in content coordinates). The focus point is kept locked to it's on screen position (ala google maps).

AnimatedZoomTo ( Rect contentRect ) : void

Do an animated zoom to the specified rectangle (in content coordinates).

AnimatedZoomTo ( double contentScale ) : void

Zoom in/out centered on the viewport center.

AnimatedZoomTo ( double newScale, Rect contentRect ) : void

Do an animated zoom to view a specific scale and rectangle (in content coordinates).

AnimatedZoomToFit ( ) : void

Do animation that scales the content so that it fits completely in the control.

ElementToLogicalPoint ( Point elementPoint ) : Point
LineDown ( ) : void

Shift the content offset one line down.

LineLeft ( ) : void

Shift the content offset one line left.

LineRight ( ) : void

Shift the content offset one line right.

LineUp ( ) : void

Shift the content offset one line up.

LogicalToElementPoint ( Point logicalPoint ) : Point
MakeVisible ( UIElement visual, Rect rectangle ) : Rect

Bring the specified rectangle to view.

MakeVisible ( Visual visual, Rect rectangle ) : Rect

Bring the specified rectangle to view.

MouseWheelDown ( ) : void

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.

MouseWheelLeft ( ) : void

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.

MouseWheelRight ( ) : void

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.

MouseWheelUp ( ) : void

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.

OnApplyTemplate ( ) : void

Called when a template has been applied to the control.

PageDown ( ) : void

Shift the content offset one page down.

PageLeft ( ) : void

Shift the content offset one page left.

PageRight ( ) : void

Shift the content offset one page right.

PageUp ( ) : void

Shift the content offset one page up.

ScaleToFit ( ) : void

Instantly scale the content so that it fits completely in the control.

ScrollToCenter ( Rect contentRect ) : void
SetHorizontalOffset ( double offset ) : void

Called when the offset of the horizontal scrollbar has been set.

SetVerticalOffset ( double offset ) : void

Called when the offset of the vertical scrollbar has been set.

SnapContentOffsetTo ( Point contentOffset ) : void

Instantly center the view on the specified point (in content coordinates).

SnapTo ( Point contentPoint ) : void

Instantly center the view on the specified point (in content coordinates).

UpdateScrollOffsets ( ) : void
ZoomAboutPoint ( double newContentScale, Point contentZoomFocus ) : void

Zoom in/out centered on the specified point (in content coordinates). The focus point is kept locked to it's on screen position (ala google maps).

ZoomAndPanControl ( ) : System

/*Static*/ constructor to define metadata for the control (and link it to the style in Generic.xaml).

ZoomIn ( Point contentZoomCenter, double ZoomFactorStep = 0.2 ) : void

Zoom in at logical point

ZoomIn ( double ZoomFactorStep = 0.2 ) : void

Zoom in at view center

ZoomOut ( Point contentZoomCenter, double ZoomFactorStep = 0.2 ) : void

Zoom out at logical point

ZoomOut ( double ZoomFactorStep = 0.2 ) : void

Zoom out at view center

ZoomTo ( Rect contentRect ) : void

Instantly zoom to the specified rectangle (in content coordinates).

ZoomTo ( double contentScale ) : void

Zoom in/out centered on the viewport center.

ZoomToFit ( ) : void

Instantly scale the content so that it fits completely in the control.

Защищенные методы

Метод Описание
ArrangeOverride ( Size arrangeBounds ) : Size

Arrange the control and it's children.

MeasureOverride ( Size constraint ) : Size

Measure the control and it's children.

OnMouseDoubleClick ( MouseButtonEventArgs e ) : void
OnMouseDown ( MouseButtonEventArgs e, MouseButton changedButton ) : void
OnMouseLeftButtonDown ( MouseButtonEventArgs e ) : void
OnMouseLeftButtonUp ( MouseButtonEventArgs e ) : void
OnMouseMove ( MouseEventArgs e ) : void
OnMouseRightButtonDown ( MouseButtonEventArgs e ) : void
OnMouseRightButtonUp ( MouseButtonEventArgs e ) : void
OnMouseUp ( MouseButtonEventArgs e, MouseButton changedButton ) : void
OnMouseWheel ( MouseWheelEventArgs e ) : void

Приватные методы

Метод Описание
AnimatedZoomPointToViewportCenter ( double newContentScale, Point contentZoomFocus, EventHandler callback ) : void

Zoom to the specified scale and move the specified focus point to the center of the viewport.

ApplyDragZoomRect ( ) : void

When the user has finished dragging out the rectangle the zoom operation is applied.

ClearPrevZoomRect ( ) : void

Clear the memory of the previous zoom level.

ContentOffsetX_Coerce ( DependencyObject d, object baseValue ) : object

Method called to clamp the 'ContentOffsetX' value to its valid range.

ContentOffsetX_PropertyChanged ( DependencyObject o, DependencyPropertyChangedEventArgs e ) : void

Event raised when the 'ContentOffsetX' property has changed value.

ContentOffsetY_Coerce ( DependencyObject d, object baseValue ) : object

Method called to clamp the 'ContentOffsetY' value to its valid range.

ContentOffsetY_PropertyChanged ( DependencyObject o, DependencyPropertyChangedEventArgs e ) : void

Event raised when the 'ContentOffsetY' property has changed value.

ContentScale_Coerce ( DependencyObject d, object baseValue ) : object

Method called to clamp the 'ContentScale' value to its valid range.

ContentScale_PropertyChanged ( DependencyObject o, DependencyPropertyChangedEventArgs e ) : void

Event raised when the 'ContentScale' property has changed value.

FadeOutDragZoomRect ( ) : void
InitDragZoomRect ( Point pt1, Point pt2 ) : void

Initialise the rectangle that the use is dragging out.

MinOrMaxContentScale_PropertyChanged ( DependencyObject o, DependencyPropertyChangedEventArgs e ) : void

Event raised 'MinContentScale' or 'MaxContentScale' has changed.

ResetViewportZoomFocus ( ) : void

Reset the viewport zoom focus to the center of the viewport.

SavePrevZoomRect ( ) : void
SetDragZoomRect ( Point pt1, Point pt2 ) : void

Update the position and size of the rectangle that user is dragging out.

UpdateContentViewportSize ( ) : void

Update the size of the viewport in content coordinates after the viewport size or 'ContentScale' has changed.

UpdateContentZoomFocusX ( ) : void

Update the X coordinate of the zoom focus point in content coordinates.

UpdateContentZoomFocusY ( ) : void

Update the Y coordinate of the zoom focus point in content coordinates.

UpdateTranslationX ( ) : void

Update the X coordinate of the translation transformation.

UpdateTranslationY ( ) : void

Update the Y coordinate of the translation transformation.

UpdateViewportSize ( Size newSize ) : void

Update the viewport size from the specified size.

ZoomPointToViewportCenter ( double newContentScale, Point contentZoomFocus ) : void

Zoom to the specified scale and move the specified focus point to the center of the viewport.

Описание методов

AnimatedScaleToFit() публичный Метод

Do animation that scales the content so that it fits completely in the control.
public AnimatedScaleToFit ( ) : void
Результат void

AnimatedSnapTo() публичный Метод

Use animation to center the view on the specified point (in content coordinates).
public AnimatedSnapTo ( Point contentPoint ) : void
contentPoint Point
Результат void

AnimatedZoomAboutPoint() публичный Метод

Zoom in/out centered on the specified point (in content coordinates). The focus point is kept locked to it's on screen position (ala google maps).
public AnimatedZoomAboutPoint ( double newContentScale, Point contentZoomFocus ) : void
newContentScale double
contentZoomFocus Point
Результат void

AnimatedZoomTo() публичный Метод

Do an animated zoom to the specified rectangle (in content coordinates).
public AnimatedZoomTo ( Rect contentRect ) : void
contentRect System.Windows.Rect
Результат void

AnimatedZoomTo() публичный Метод

Zoom in/out centered on the viewport center.
public AnimatedZoomTo ( double contentScale ) : void
contentScale double
Результат void

AnimatedZoomTo() публичный Метод

Do an animated zoom to view a specific scale and rectangle (in content coordinates).
public AnimatedZoomTo ( double newScale, Rect contentRect ) : void
newScale double
contentRect Rect
Результат void

AnimatedZoomToFit() публичный Метод

Do animation that scales the content so that it fits completely in the control.
public AnimatedZoomToFit ( ) : void
Результат void

ArrangeOverride() защищенный Метод

Arrange the control and it's children.
protected ArrangeOverride ( Size arrangeBounds ) : Size
arrangeBounds Size
Результат Size

ElementToLogicalPoint() публичный Метод

public ElementToLogicalPoint ( Point elementPoint ) : Point
elementPoint Point
Результат Point

LineDown() публичный Метод

Shift the content offset one line down.
public LineDown ( ) : void
Результат void

LineLeft() публичный Метод

Shift the content offset one line left.
public LineLeft ( ) : void
Результат void

LineRight() публичный Метод

Shift the content offset one line right.
public LineRight ( ) : void
Результат void

LineUp() публичный Метод

Shift the content offset one line up.
public LineUp ( ) : void
Результат void

LogicalToElementPoint() публичный Метод

public LogicalToElementPoint ( Point logicalPoint ) : Point
logicalPoint Point
Результат Point

MakeVisible() публичный Метод

Bring the specified rectangle to view.
public MakeVisible ( UIElement visual, Rect rectangle ) : Rect
visual UIElement
rectangle Rect
Результат Rect

MakeVisible() публичный Метод

Bring the specified rectangle to view.
public MakeVisible ( Visual visual, Rect rectangle ) : Rect
visual Visual
rectangle Rect
Результат Rect

MeasureOverride() защищенный Метод

Measure the control and it's children.
protected MeasureOverride ( Size constraint ) : Size
constraint Size
Результат Size

MouseWheelDown() публичный Метод

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.
public MouseWheelDown ( ) : void
Результат void

MouseWheelLeft() публичный Метод

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.
public MouseWheelLeft ( ) : void
Результат void

MouseWheelRight() публичный Метод

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.
public MouseWheelRight ( ) : void
Результат void

MouseWheelUp() публичный Метод

Don't handle mouse wheel input from the ScrollViewer, the mouse wheel is used for zooming in and out, not for manipulating the scrollbars.
public MouseWheelUp ( ) : void
Результат void

OnApplyTemplate() публичный Метод

Called when a template has been applied to the control.
public OnApplyTemplate ( ) : void
Результат void

OnMouseDoubleClick() защищенный Метод

protected OnMouseDoubleClick ( MouseButtonEventArgs e ) : void
e MouseButtonEventArgs
Результат void

OnMouseDown() защищенный Метод

protected OnMouseDown ( MouseButtonEventArgs e, MouseButton changedButton ) : void
e MouseButtonEventArgs
changedButton MouseButton
Результат void

OnMouseLeftButtonDown() защищенный Метод

protected OnMouseLeftButtonDown ( MouseButtonEventArgs e ) : void
e MouseButtonEventArgs
Результат void

OnMouseLeftButtonUp() защищенный Метод

protected OnMouseLeftButtonUp ( MouseButtonEventArgs e ) : void
e MouseButtonEventArgs
Результат void

OnMouseMove() защищенный Метод

protected OnMouseMove ( MouseEventArgs e ) : void
e MouseEventArgs
Результат void

OnMouseRightButtonDown() защищенный Метод

protected OnMouseRightButtonDown ( MouseButtonEventArgs e ) : void
e MouseButtonEventArgs
Результат void

OnMouseRightButtonUp() защищенный Метод

protected OnMouseRightButtonUp ( MouseButtonEventArgs e ) : void
e MouseButtonEventArgs
Результат void

OnMouseUp() защищенный Метод

protected OnMouseUp ( MouseButtonEventArgs e, MouseButton changedButton ) : void
e MouseButtonEventArgs
changedButton MouseButton
Результат void

OnMouseWheel() защищенный Метод

protected OnMouseWheel ( MouseWheelEventArgs e ) : void
e MouseWheelEventArgs
Результат void

PageDown() публичный Метод

Shift the content offset one page down.
public PageDown ( ) : void
Результат void

PageLeft() публичный Метод

Shift the content offset one page left.
public PageLeft ( ) : void
Результат void

PageRight() публичный Метод

Shift the content offset one page right.
public PageRight ( ) : void
Результат void

PageUp() публичный Метод

Shift the content offset one page up.
public PageUp ( ) : void
Результат void

ScaleToFit() публичный Метод

Instantly scale the content so that it fits completely in the control.
public ScaleToFit ( ) : void
Результат void

ScrollToCenter() публичный Метод

public ScrollToCenter ( Rect contentRect ) : void
contentRect Rect
Результат void

SetHorizontalOffset() публичный Метод

Called when the offset of the horizontal scrollbar has been set.
public SetHorizontalOffset ( double offset ) : void
offset double
Результат void

SetVerticalOffset() публичный Метод

Called when the offset of the vertical scrollbar has been set.
public SetVerticalOffset ( double offset ) : void
offset double
Результат void

SnapContentOffsetTo() публичный Метод

Instantly center the view on the specified point (in content coordinates).
public SnapContentOffsetTo ( Point contentOffset ) : void
contentOffset Point
Результат void

SnapTo() публичный Метод

Instantly center the view on the specified point (in content coordinates).
public SnapTo ( Point contentPoint ) : void
contentPoint Point
Результат void

UpdateScrollOffsets() публичный Метод

public UpdateScrollOffsets ( ) : void
Результат void

ZoomAboutPoint() публичный Метод

Zoom in/out centered on the specified point (in content coordinates). The focus point is kept locked to it's on screen position (ala google maps).
public ZoomAboutPoint ( double newContentScale, Point contentZoomFocus ) : void
newContentScale double
contentZoomFocus Point
Результат void

ZoomAndPanControl() публичный Метод

/*Static*/ constructor to define metadata for the control (and link it to the style in Generic.xaml).
public ZoomAndPanControl ( ) : System
Результат System

ZoomIn() публичный Метод

Zoom in at logical point
public ZoomIn ( Point contentZoomCenter, double ZoomFactorStep = 0.2 ) : void
contentZoomCenter Point
ZoomFactorStep double
Результат void

ZoomIn() публичный Метод

Zoom in at view center
public ZoomIn ( double ZoomFactorStep = 0.2 ) : void
ZoomFactorStep double
Результат void

ZoomOut() публичный Метод

Zoom out at logical point
public ZoomOut ( Point contentZoomCenter, double ZoomFactorStep = 0.2 ) : void
contentZoomCenter Point
ZoomFactorStep double
Результат void

ZoomOut() публичный Метод

Zoom out at view center
public ZoomOut ( double ZoomFactorStep = 0.2 ) : void
ZoomFactorStep double
Результат void

ZoomTo() публичный Метод

Instantly zoom to the specified rectangle (in content coordinates).
public ZoomTo ( Rect contentRect ) : void
contentRect Rect
Результат void

ZoomTo() публичный Метод

Zoom in/out centered on the viewport center.
public ZoomTo ( double contentScale ) : void
contentScale double
Результат void

ZoomToFit() публичный Метод

Instantly scale the content so that it fits completely in the control.
public ZoomToFit ( ) : void
Результат void

Описание свойств

AnimationDurationProperty публичное статическое свойство

public static DependencyProperty AnimationDurationProperty
Результат DependencyProperty

ContentOffsetXProperty публичное статическое свойство

public static DependencyProperty ContentOffsetXProperty
Результат DependencyProperty

ContentOffsetYProperty публичное статическое свойство

public static DependencyProperty ContentOffsetYProperty
Результат DependencyProperty

ContentScalableProperty публичное статическое свойство

public static DependencyProperty ContentScalableProperty
Результат DependencyProperty

ContentScaleProperty публичное статическое свойство

public static DependencyProperty ContentScaleProperty
Результат DependencyProperty

ContentViewportHeightProperty публичное статическое свойство

public static DependencyProperty ContentViewportHeightProperty
Результат DependencyProperty

ContentViewportWidthProperty публичное статическое свойство

public static DependencyProperty ContentViewportWidthProperty
Результат DependencyProperty

ContentZoomFocusXProperty публичное статическое свойство

public static DependencyProperty ContentZoomFocusXProperty
Результат DependencyProperty

ContentZoomFocusYProperty публичное статическое свойство

public static DependencyProperty ContentZoomFocusYProperty
Результат DependencyProperty

IsMouseWheelScrollingEnabledProperty публичное статическое свойство

public static DependencyProperty IsMouseWheelScrollingEnabledProperty
Результат DependencyProperty

MaxContentScaleProperty публичное статическое свойство

public static DependencyProperty MaxContentScaleProperty
Результат DependencyProperty

MinContentScaleProperty публичное статическое свойство

public static DependencyProperty MinContentScaleProperty
Результат DependencyProperty

ViewportZoomFocusXProperty публичное статическое свойство

public static DependencyProperty ViewportZoomFocusXProperty
Результат DependencyProperty

ViewportZoomFocusYProperty публичное статическое свойство

public static DependencyProperty ViewportZoomFocusYProperty
Результат DependencyProperty