Csharp/C#教程:UWP尝试使用附加的依赖属性动画滚动查看器分享


UWP尝试使用附加的依赖属性动画滚动查看器

我试图在UWP中为scrollviewer的水平偏移设置动画。但附加的属性不会被动画目标识别。

      

这是c#代码

  public class ScrollviewerBehaviour { public static readonly DependencyProperty Horizontalofsetproperty = DependencyProperty.RegisterAttached("Horizontalofset", typeof(double), typeof(ScrollviewerBehaviour), new PropertyMetadata(0,new PropertyChangedCallback(OnHorizontalofsetchanged))); public static void SetHorizontalofset(ScrollViewer element, double value) { element.SetValue(Horizontalofsetproperty, value); } public static double GetHorizontalofset(ScrollViewer element) { return (double)element.GetValue(Horizontalofsetproperty); } public static void OnHorizontalofsetchanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { var scrollviewer = (sender as ScrollViewer); scrollviewer.ChangeView((double)e.NewValue, scrollviewer.VerticalOffset, scrollviewer.ZoomFactor); } } 

我想念任何事

由于Windows运行时XAML实现的现有限制,您无法为自定义附加属性设置动画。 请参阅MSDN文档中的 动画XAML附加属性部分。

对于您的情况,您可以创建自定义usercontrol并为此usercontrol定义依赖项属性。 然后,您可以为此依赖项属性设置动画。

在此属性的PropertyChangedCallback处理程序方法中,您可以更改ScrollViewer的Horizo​​ntalofset。

有关详细信息,请参阅以下代码示例:

       

 public sealed partial class MyUserControl1 : UserControl { public MyUserControl1() { this.InitializeComponent(); } public double Horizontalofset { get { return (double)GetValue(HorizontalofsetProperty); } set { SetValue(HorizontalofsetProperty, value); } } // Using a DependencyProperty as the backing store for Horizontalofset. This enables animation, styling, binding, etc... public static readonly DependencyProperty HorizontalofsetProperty = DependencyProperty.Register("Horizontalofset", typeof(double), typeof(MyUserControl1), new PropertyMetadata(0,PropertyChangedCallback)); public static void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var distance = (d as MyUserControl1).scrolviewer.ScrollableWidth; if (distance > (double)e.NewValue) { var ret = (d as MyUserControl1).scrolviewer.ChangeView((double)e.NewValue, (d as MyUserControl1).scrolviewer.VerticalOffset, (d as MyUserControl1).scrolviewer.ZoomFactor); Debug.WriteLine(ret); } } } 
          
 private void Button_Click(object sender, RoutedEventArgs e) { animation.Begin(); } 

请注意,您需要启用EnableDependentAnimation ,否则,您的动画将无效。

上述就是C#学习教程:UWP尝试使用附加的依赖属性动画滚动查看器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/943330.html

(0)
上一篇 2021年11月14日
下一篇 2021年11月14日

精彩推荐