博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 菜单栏滚动到顶部后固定的两种方法
阅读量:4035 次
发布时间:2019-05-24

本文共 3124 字,大约阅读时间需要 10 分钟。

最近项目中有这么个需求:

    菜单栏滚动到顶部后固定在顶部,专业的名词叫吸顶。。这在移动端还是比较常见的。

看看效果:

下面直接看看代码喽,代码不多:

第一种方法思路:

    写一个和菜单一模一样的菜单,放在窗口顶部隐藏,当菜单滚动到上方时,就显示出来,反之隐藏。

MainWindow1.xaml如下:

MainWindow1.cs代码:

using System.Windows;namespace wpfcore{    public partial class MainWindow1 : Window    {        public MainWindow1()        {            InitializeComponent();        }        private void ScrollViewer_ScrollChanged(object sender, System.Windows.Controls.ScrollChangedEventArgs e)        {            if (e.VerticalOffset > banner.ActualHeight)            {                 topMenu.Visibility = Visibility.Visible;            }            else            {                topMenu.Visibility = Visibility.Hidden;            }        }    }}

---------------分隔线------------------

第二种方法:

    在菜单 栏内添加RenderTransform。当菜单滚动到上方时,就设置TranslateTransform.YProperty  达到 同样效果

MainWindow.xaml代码如下 :

MainWindow.cs代码:

using System.Windows;using System.Windows.Media;namespace wpfcore{    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void ScrollViewer_ScrollChanged(object sender, System.Windows.Controls.ScrollChangedEventArgs e)        {            menuTranslate.SetValue(TranslateTransform.YProperty, e.VerticalOffset);            if (e.VerticalOffset > banner.ActualHeight)            {                menuTranslate.SetValue(TranslateTransform.YProperty, e.VerticalOffset-banner.ActualHeight);            }            else            {                menuTranslate.SetValue(TranslateTransform.YProperty, 0.0);            }        }    }}

你还有更好的方法吗?

欢迎加入WPF UI交流群哦,关注本公众号后,回复加群,即可获取群二维码。

如果喜欢,点个赞呗~

转载地址:http://bqydi.baihongyu.com/

你可能感兴趣的文章
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
关于AIS编码解码的两个小问题
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
昨夜今晨最大八卦终于坐实——人类首次直接探测到了引力波
查看>>
如何优雅、机智地和新公司谈薪水?
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.147 - LeetCode1108
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
mysql:sql create database新建utf8mb4 数据库
查看>>
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql drop table (删除表)
查看>>