C# 缩放items控件中的项

C# 缩放items控件中的项,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我正在开发一个控件(Items控件)来显示房间中的盒子(例如sack)。 如果房间的大小是10*10英尺,那么我必须调整它以适应我的屏幕。 此外,还需要缩放房间中的所有对象 在我的视图模型中,我有一组具有实际尺寸的对象(即框) “我的项目”控件的“项目面板”类似于一个画布,我可以在其中自由移动对象 当前,在项目面板的“测量覆盖”或“排列覆盖”中,我获得了面板的高度和宽度。有了这样的高度和宽度,我在排列时将缩放应用于对象 所以我的问题是,这种方法更好还是有更好的选择 问候 Saurabh Digh

我正在开发一个控件(Items控件)来显示房间中的盒子(例如sack)。 如果房间的大小是10*10英尺,那么我必须调整它以适应我的屏幕。 此外,还需要缩放房间中的所有对象

在我的视图模型中,我有一组具有实际尺寸的对象(即框)

“我的项目”控件的“项目面板”类似于一个画布,我可以在其中自由移动对象

当前,在项目面板的“测量覆盖”或“排列覆盖”中,我获得了面板的高度和宽度。有了这样的高度和宽度,我在排列时将缩放应用于对象

所以我的问题是,这种方法更好还是有更好的选择

问候
Saurabh Dighade

看看这段代码

<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值

我相信您的路径是正确的。@感谢您的回复,您可以尝试使用ScrollViewer并设置其大小。而ScrollViewer将缩放所有inside@Sasha,谢谢查看,但我认为scrollViewer无法缩放。谢谢,我将尝试此方法,如果成功,我会将其标记为答案。您好,我有缩放功能,无法使用scaleTransform。我主要关心的是我应该在哪里应用这个量表。i、 e.缩放不是应用到哪里的问题,而是。但是谢谢你的关注和回应。你是这样使用它的吗?不,我没有使用任何布局转换,我实际上是在缩放项目。例如,房间中的大小为(100100),如果我的比例为0.1,则我的比例大小为大小(10,10)。缩放计算逻辑是独立的。问题是我们应该在视图模型中缩放所有对象,还是应该在“我的项目”控件的“自定义面板”中缩放它。@SD13尝试缩放自定义面板。在视图模型中,应仅更改属性,以更改视图。我的意思是你改变了你的模型,例如宽度,而这个通过绑定改变了你的视图的宽度。