zoukankan      html  css  js  c++  java
  • silverlight中DataGrid的滚动条绑定事件问题

    今天遇到一个问题:

    需要在点击红色框中的滚动条时,将窗体在最上层显示,点击datagrid的其它地方都能让窗口最上层显示,唯独滚动条不可以。

    但是在silverlight不能获取到DataGrid的滚动条对象,这点很郁闷。按理说它是DataGrid的一部分,在DataGrid的控件范围内点击都能触发DataGrid的

    鼠标点击事件,事实却让我很失望。

    最后找到以下解决方法:

    1.在DataGrid中查找滚动条,然后为它绑定事件

    代码
    private void FindScrollBar(DependencyObject obj, ref List<ScrollBar> scrollBars)
    {
          
    for (int i = VisualTreeHelper.GetChildrenCount(obj) - 1; i >= 0; i--)
          {                
               DependencyObject child 
    = VisualTreeHelper.GetChild(obj, i);
               
    if (child != null && child is ScrollBar)
               {
                     scrollBars.Add(child 
    as ScrollBar);
               }
               
    else
               {
                     FindScrollBar(child, 
    ref scrollBars);                    
               }
           }
    }
     
    2.自定义一个类,并继承DataGrid
    代码
    public class MyDataGrid:DataGrid
    {
            
    public MyDataGrid()
            {            
            }

            
    public ScrollBar VerticalScrollbar()
            {              
                
    return base.GetTemplateChild("VerticalScrollbar"as ScrollBar;            
            }

            
    public ScrollBar HorizontalScrollbar()
            {
                
    return base.GetTemplateChild("HorizontalScrollbar"as ScrollBar;            
            }
    }
    获取到滚动条对象后,然后为其绑定事件,最终问题得解
    可能还有其它更好的办法,希望大家不吝分享,谢谢
  • 相关阅读:
    Java RMI简单例子HelloWorld
    Java RMI远程方法调用
    javascript中通过replace函数搜索和替换指定字符串
    详解公钥、私钥、数字证书的概念
    标准MD5加密算法
    基于Spring Boot构建的Spring MVC快速入门
    http://jinnianshilongnian.iteye.com/blog/1996071
    双11也不要乱买书
    Mybatis 中的转义字符(转帖)
    【Maven】为什么Maven dependencies有的jar包显示为灰色?
  • 原文地址:https://www.cnblogs.com/Memory/p/1773095.html
Copyright © 2011-2022 走看看