![](/img/trans.png)
[英]Items Control and Items Template within another Items Control/Data Template
[英]Scalling the items in items Control
我正在开发一个控件(项目控件)来显示房间中的盒子(例如麻袋)。 如果房间大小是10 * 10英尺,那么我必须将其缩放以适合我的屏幕。 此外,房间中的所有物体也需要缩放。
在我的视图模型中,我具有这些实际尺寸的对象(即盒子)的集合。
我的项目控件的ItemPanel就像一个画布,在其中我可以自由移动对象。
当前在我的itemsPanel的Measure Override或Arrange覆盖中,我得到了面板的高度和宽度。 通过该高度和宽度,我可以在布置时将缩放比例应用于对象。
所以我的问题是,这种方法是更好的还是有更好的选择。
问候索拉·迪格
看一下这段代码
<Grid x:Uid="Grid_1" Margin="10" ToolTip="{Binding ToolTip}">
<StackPanel x:Uid="StackPanel_1" Grid.Row="1" Orientation="Horizontal">
<Slider x:Uid="ScaleSlider" x:Name="ScaleSlider" Minimum="0.2" Maximum="5" LargeChange="0.05" SmallChange="0.01"
Value="{Binding ScaleSlider}" IsSnapToTickEnabled="True" TickFrequency="0.1" Visibility="Hidden"/>
</StackPanel>
<ScrollViewer x:Uid="ScrollViewer_1" Grid.Row="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Border x:Uid="AlStatusBorder" BorderBrush="#101010" BorderThickness="3"
Background="{Binding Color}"
x:Name="AlStatusBorder"
Padding="5"
CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Top">
<Grid x:Uid="Grid_2">
<!-- Tachometer Gauge -->
<gauge:CircularGauge x:Uid="gauge:CircularGauge_1" Grid.Row="1" Grid.Column="2" FrameType="CircularTopGradient" Width="150" Height="150" Radius="75" Background="#444444"
RimBrush="#444444">
<gauge:CircularGauge.LayoutTransform >
<ScaleTransform x:Uid="ScaleTransform_1" ScaleX="{Binding ElementName=ScaleSlider, Path=Value}"
ScaleY="{Binding ElementName=ScaleSlider, Path=Value}"/>
</gauge:CircularGauge.LayoutTransform>
</gauge:CircularGauge>
</Grid>
</Border>
</ScrollViewer>
</Grid>
在grid_2中,我实现了userControl。 当我更改ScaleSlider属性时,元素会变大或变小,并且位于内部的用户控件也会更改其大小。 可能正是您要找的东西。 至少我可以移动此userControl; 仅通过更改一个属性来更改大小。 注意Im绑定ScaleX和ScaleY值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.