当前位置: 首页 > news >正文

dw做高逼格的网站/网站推广怎么弄

dw做高逼格的网站,网站推广怎么弄,西宁企业网站开发定制,上海装修公司排名2021原文:让 ScrollViewer 的滚动带上动画版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:http://blog.csdn.net/wpwalter/&#…
原文:让 ScrollViewer 的滚动带上动画

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:http://blog.csdn.net/wpwalter/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系(walter.lv@qq.com)。 https://blog.csdn.net/WPwalter/article/details/78858779

WPF 的 ScrollViewer 没有水平滚动和垂直滚动的属性 HorizontalScrollOffset VerticalScrollOffset,只有水平滚动和垂直滚动的方法 ScrollToHorizontalOffset ScrollToVerticalOffset,那么怎么给滚动过程加上动画呢?


既然没有属性,那我们加个属性好了,反正附加属性就是用来干这个事儿的。

namespace Walterlv
{public static class ScrollViewerBehavior{public static readonly DependencyProperty HorizontalOffsetProperty = DependencyProperty.RegisterAttached("HorizontalOffset", typeof(double), typeof(ScrollViewerBehavior), new UIPropertyMetadata(0.0, OnHorizontalOffsetChanged));public static void SetHorizontalOffset(FrameworkElement target, double value) => target.SetValue(HorizontalOffsetProperty, value);public static double GetHorizontalOffset(FrameworkElement target) => (double)target.GetValue(HorizontalOffsetProperty);private static void OnHorizontalOffsetChanged(DependencyObject target, DependencyPropertyChangedEventArgs e) => (target as ScrollViewer)?.ScrollToHorizontalOffset((double)e.NewValue);public static readonly DependencyProperty VerticalOffsetProperty = DependencyProperty.RegisterAttached("VerticalOffset", typeof(double), typeof(ScrollViewerBehavior), new UIPropertyMetadata(0.0, OnVerticalOffsetChanged));public static void SetVerticalOffset(FrameworkElement target, double value) => target.SetValue(VerticalOffsetProperty, value);public static double GetVerticalOffset(FrameworkElement target) => (double)target.GetValue(VerticalOffsetProperty);private static void OnVerticalOffsetChanged(DependencyObject target, DependencyPropertyChangedEventArgs e) => (target as ScrollViewer)?.ScrollToVerticalOffset((double)e.NewValue);}
}

我们在属性的变更通知中调用了 ScrollToHorizontalOffsetScrollToVerticalOffset 方法。这样,便能够通过动画改变属性的方式来调用这两个方法。

那么现在我们就加上动画:

<Storyboard x:Key="ScrollStoryboard"><DoubleAnimation Storyboard.TargetName="ScrollViewer" Storyboard.TargetProperty="(walterlv:ScrollViewerBehavior.HorizontalOffset)"From="0" To="500" Duration="0:0:0.6"><DoubleAnimation.EasingFunction><CircleEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction></DoubleAnimation>
</Storyboard>

添加一些用于测试的按钮和 ScrollViewer

<ScrollViewer Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="3" x:Name="ScrollViewer"HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"><Image Source="https://walterlv.github.io/static/posts/2017-12-09-21-19-50.png" Width="1000"/>
</ScrollViewer><Button Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" x:Name="ConnectionDestination"VerticalAlignment="Bottom" Height="50" Content="动画目标" Panel.ZIndex="1"><Button.Triggers><EventTrigger RoutedEvent="Button.Click"><BeginStoryboard Storyboard="{StaticResource ScrollStoryboard}"/></EventTrigger></Button.Triggers>
</Button>

现在,我们点击按钮,就可以看到 ScrollViewer 的滚动动画生效了,如下:

动画效果


额外的,如果希望这个附加属性能够附加到 ListView 或者 ListBox 中,则需要修改 ScrollViewerBehavior 类,然后在 OnHorizontalOffsetChangedOnVerticalOffsetChanged 方法中判断 ListViewListBox,然后在其中寻找可视元素子级 ScrollViewer

http://www.jmfq.cn/news/5158981.html

相关文章:

  • wordpress模板博客/济南公司网站推广优化最大的
  • 怎么建自己公司网站/站长工具平台
  • 枣强网站建设/优化大师兑换码
  • logo素材网站有哪些/seo建站营销
  • 网站备案与域名备案/代运营公司排行榜
  • 广州海珠建网站/神秘网站
  • 石河子网站建设公司/天津的网络优化公司排名
  • 微信微网站开发教程/网络推广外包
  • 新疆建设厅网站/凡科官网免费制作小程序
  • wordpress主题古风/seo优化网络推广
  • pc网站做app京东/河南做网站优化
  • 合肥学习做网站/手机网站模板
  • 网站建设中主页源码/郑州全域静态管理
  • 青岛城乡建筑设计院有限公司/济南seo优化外包服务公司
  • 风格网站建设/电商平台的营销方式
  • 青岛网站互联网公司/产品优化是什么意思
  • 网站公司优势/app推广是什么工作
  • 新手学做网站电子版/网站优化网站优化
  • 苹果做安卓游戏下载网站/宁波网站推广找哪家公司
  • 北京环评在那个网站上做/竞价培训班
  • 手机网站建设开发/深圳搜索排名优化
  • wordpress浏览器版本/seo关键字排名优化
  • 怎么自己给自己的网站做推广/seo包年优化费用
  • 企业微网站与手机微信/深圳企业黄页网
  • js网站禁止复制/网站关键词优化外包
  • 购物商城网站功能设计/seo网络推广排名
  • 网站架构设计师月薪多少/公司域名注册查询
  • 哈什么网一个网站做ppt/百度官网网站首页
  • 网站 搜索怎么实现/seo网站优化网站编辑招聘
  • 做网站的字体大小/郑州网络营销推广公司