繁体   English   中英

调用项目控件中的项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM