Silverlight Tips(4)
时间:2011-02-20 来源:Ringgo.Yao
小的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);
相关阅读 更多 +