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);

     

  • 相关阅读:
    python使用消息队列RabbitMq(入门)
    python Condition类(锁)
    python锁
    python多线程的几种情形分析-三种情况
    git基本使用
    python学习笔记之数据类型、字符编码、文件处理
    NOIP2018提高组模拟题(五)
    10.28模拟赛
    差分+树状数组【p4868】Preprefix sum
    线段树【p2706】贪婪大陆
  • 原文地址:https://www.cnblogs.com/626498301/p/1959073.html
Copyright © 2011-2022 走看看