• 自定义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

  • 相关阅读:
    WIN8 下 Hyper-V和Vmware Workstation
    小技巧总结
    工具软件
    php开发入门
    docker的用法总结
    [工具] 同步本地文件夹与VPS中的文件夹
    读书笔记之《The Art of Readable Code》Part 3
    读书笔记之《The Art of Readable Code》Part 2
    正则表达式小试牛刀
    读书笔记之《The Art of Readable Code》part 1
  • 原文地址:https://www.cnblogs.com/tianhonghui/p/2153460.html
Copyright © 2020-2023  润新知