我在我的应用程序中实现了行为,该行为将根据屏幕大小来调整主要内容区域的大小。(内容区域由用户可以放置/绘制的图标和其他元素组成)
目前,margin属性是使用转换的转换器用于定位元件Point
到Thickness
。
例子:
我需要将子元素位置“缩放”到容器的大小。元素的位置仅是需要缩放的大小,而不是大小。
如何将变换(RenderTransform
或LayoutTransform
)应用于网格的所有子元素,以便图标位置将根据网格大小缩放到正确的位置?
还应注意,在应用程序运行时,可以删除/添加这些图标。
我之前已经做过此事,建议您这样做:
Circle
)中,您有某种坐标表示容器的位置,与容器的大小成比例。因此,0.5
代表中间,0.33
代表左边的三分之一,依此类推。IMultiValueConverter
可根据相对坐标和容器尺寸沿给定尺寸计算像素坐标的;Xaml:
<Circle>
<Circle.Margin>
<MultiBinding Converter="{StaticResource ThatConverter}">
<Binding ElementName="container" Path="ActualWidth"/>
<Binding Path="CircleCoordinateX"/>
<!-- The same for height and Y coordinate -->
</MultiBinding>
</Circle.Margin>
</Circle>
代替这种更简单的方法,理想情况下,您应该使容器成为ItemsControl
,创建ItemsTemplate
for数据类型Circle
,然后将容器绑定ItemsSource
到某些视图模型上的某些ObservableCollection。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句