1: public class ScrollViewerUtilities
2: {
3: #region HorizontalOffset
4:
5: /// <summary>
6: /// HorizontalOffset Attached Dependency Property
7: /// </summary>
8: public static readonly DependencyProperty HorizontalOffsetProperty =
9: DependencyProperty.RegisterAttached("HorizontalOffset", typeof(double), typeof(ScrollViewerUtilities),
10: new FrameworkPropertyMetadata((double)0.0,
11: new PropertyChangedCallback(OnHorizontalOffsetChanged)));
12:
13: /// <summary>
14: /// Gets the HorizontalOffset property. This dependency property
15: /// indicates ....
16: /// </summary>
17: public static double GetHorizontalOffset(DependencyObject d)
18: {
19: return (double)d.GetValue(HorizontalOffsetProperty);
20: }
21:
22: /// <summary>
23: /// Sets the HorizontalOffset property. This dependency property
24: /// indicates ....
25: /// </summary>
26: public static void SetHorizontalOffset(DependencyObject d, double value)
27: {
28: d.SetValue(HorizontalOffsetProperty, value);
29: }
30:
31: /// <summary>
32: /// Handles changes to the HorizontalOffset property.
33: /// </summary>
34: private static void OnHorizontalOffsetChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
35: {
36: var viewer = (ScrollViewer)d;
37: viewer.ScrollToHorizontalOffset((double)e.NewValue);
38: }
39:
40: #endregion
41:
42: #region VerticalOffset
43:
44: /// <summary>
45: /// VerticalOffset Attached Dependency Property
46: /// </summary>
47: public static readonly DependencyProperty VerticalOffsetProperty =
48: DependencyProperty.RegisterAttached("VerticalOffset", typeof(double), typeof(ScrollViewerUtilities),
49: new FrameworkPropertyMetadata((double)0.0,
50: new PropertyChangedCallback(OnVerticalOffsetChanged)));
51:
52: /// <summary>
53: /// Gets the VerticalOffset property. This dependency property
54: /// indicates ....
55: /// </summary>
56: public static double GetVerticalOffset(DependencyObject d)
57: {
58: return (double)d.GetValue(VerticalOffsetProperty);
59: }
60:
61: /// <summary>
62: /// Sets the VerticalOffset property. This dependency property
63: /// indicates ....
64: /// </summary>
65: public static void SetVerticalOffset(DependencyObject d, double value)
66: {
67: d.SetValue(VerticalOffsetProperty, value);
68: }
69:
70: /// <summary>
71: /// Handles changes to the VerticalOffset property.
72: /// </summary>
73: private static void OnVerticalOffsetChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
74: {
75: var viewer = (ScrollViewer)d;
76: viewer.ScrollToVerticalOffset((double)e.NewValue);
77: }
78:
79: #endregion
80:
81: }