zoukankan      html  css  js  c++  java
  • 自定义Behavior 实现Listbox自动滚动到选中项

    blend为我们提供方便的behavior来扩展我们的控件,写好之后就可以在blend中方便的使用了。

    下面是自定义的behavior来实现Listbox自动滚动到选中项

    其中this.AssociatedObject为使用该行为的控件。

    其中

    OnAttached()和OnDetaching()为必须重写的内容,通常可以在OnAttched()里面添加事件处理程序,来达到拓展的目的。

    public class AutoScrollBehavior : Behavior<ListBox>
        {
            protected override void OnAttached()
            {
                base.OnAttached();
                this.AssociatedObject.SelectionChanged += new SelectionChangedEventHandler(AssociatedObject_SelectionChanged);
            }
            void AssociatedObject_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                if (sender is ListBox)
                {
                    ListBox listbox = (sender as ListBox);
                    if (listbox.SelectedItem != null)
                    {
                        listbox.Dispatcher.BeginInvoke((Action)delegate
                        {
                            listbox.UpdateLayout();
                            listbox.ScrollIntoView(listbox.SelectedItem);
                        });
                    }
                }
            }
            protected override void OnDetaching()
            {
                base.OnDetaching();
                this.AssociatedObject.SelectionChanged -=
                    new SelectionChangedEventHandler(AssociatedObject_SelectionChanged);
            }
        }

    欢迎探讨WPF技术问题 QQ:281092346

  • 相关阅读:
    HRMSYS项目源码分析(二)
    HRMSYS项目源码分析(一)
    SQL类型转换以及自动在前面补0满足10位工号标示法
    android—资源文件(res)的引用
    SQL serve创建与调用存储过程
    .wsdl文件生成.cs文件
    android 文件操作类简易总结
    android EncodingUtils
    FTP创建与操作
    如何调试框架中的app
  • 原文地址:https://www.cnblogs.com/tianhonghui/p/2153460.html
Copyright © 2011-2022 走看看