zoukankan      html  css  js  c++  java
  • Silverlight Tips(4)

          又到开学季节,或许过了这次,人生再也没有开学的机会了,临近毕业的时候,才发现四年就快过去了,才发现有多想留住时间,先不感慨了,这篇继续记录几个小的Tips。

    ItemsControl中添加ScrollViewer

          修改ControlTemplate,将ScrollViewer添加至ItemsPresent中即可

             <ItemsControl x:Name="itemControl" >
    
                <ItemsControl.Template>
    
                    <ControlTemplate>
    
                        <ScrollViewer x:Name="scollViewer" Padding="{TemplateBinding Padding}" />
    
                    </ControlTemplate>
    
                </ItemsControl.Template>
    
            </ItemsControl>

     获取元素的相对坐标

         最普遍的场景是获取子控件中相对父控件的的坐标

             <StackPanel Margin="130,60,0,0" Name="parentElement" >
    
                <TextBox  Name="childElement"  />
    
             </StackPanel>

    C#Code:

    Point point = childElement.TransformToVisual(parentElement).Transform(new Point(0,0));

         当子元素在父元素的左边或者上面,坐标值会是负数。

         如果要获得绝对位置,那么计算元素相对根元素的位置

    Point point1 = uiElement.TransformToVisual(App.Current.RootVisual).Transform(new Point(0,0));

    获取区域内的元素

          在某个场景中,我们需要获取某一个区域(点)内的对象,这可以使用Silverlight中的VisualTreeHelper.FindElementsInHostCoordinates来实现,

    它可以获取一个Rect或者Point内的对象:

             Rect rect = new Rect(100, 100, 100, 100);
    
            IEnumerable<UIElement> elementsInAreas = VisualTreeHelper.FindElementsInHostCoordinates(rect,uiElement);

     

  • 相关阅读:
    《基于CMMI的软件工程及实训指导》第一章读书心得
    第一个微信小项目
    自己设计大学排名-数据库实践
    第一次爬虫和测试
    预测球队比赛成绩
    自己的第一个网页
    科学计算和可视化
    第一个微信小项目
    数据库实际
    第一个爬虫和测试
  • 原文地址:https://www.cnblogs.com/626498301/p/1959073.html
Copyright © 2011-2022 走看看