C# 更改画布内矩形的比例
我有一个带有矩形的C# 更改画布内矩形的比例,c#,wpf,xaml,wpf-controls,shape,C#,Wpf,Xaml,Wpf Controls,Shape,我有一个带有矩形的画布: <Canvas> <Rettangle/> </Canvas> 我该怎么做?最好的解决方案是创建自己的自定义画布,并使用这些问题中提到的一些技术实现重新调整大小和位置- 但对我来说,这个功能看起来非常类似于缩放;如果您的窗口只有画布,您可以尝试使用Kael Rowan提供的以下ZoomableCanvas,并在重新调整窗口大小时显式放大/缩小: 为什么不把所有的东西都放在一个盒子里 您只是希望矩形的位置是相对的还是它的大
画布
:
<Canvas>
<Rettangle/>
</Canvas>
我该怎么做?最好的解决方案是创建自己的自定义画布,并使用这些问题中提到的一些技术实现重新调整大小和位置- 但对我来说,这个功能看起来非常类似于缩放;如果您的窗口只有画布,您可以尝试使用Kael Rowan提供的以下ZoomableCanvas,并在重新调整窗口大小时显式放大/缩小:
为什么不把所有的东西都放在一个盒子里
您只是希望矩形的位置是相对的还是它的大小也是相对的?从图像上看,两者都是。@akjoshi两者都是,大小也一样。如果你对画布应用ScaleTransform,我想它会这样做。我的画布在窗口内,当我调整窗口大小时,画布也会调整大小,我不会应用任何转换。为什么画布
有特定的宽度
和高度
?我想让画布
填满我的窗口
内的所有可用空间。因此,如果我的窗口调整了大小,我必须动态更改画布的大小?您可以给它任何宽度和高度。与包含的矩形相比,它只需要有一个固定的大小。画布大小与矩形大小和位置必须有一定的预定义关系。您还可以设置Canvas.Width=1.0和Rectangle.Width=0.25。这就是Viewbox的功能。只需尝试样本XAML。将Viewbox用作窗口中的顶级容器。
----------------------------------------
| |
| |
| ____ |
| | | |
| |____| |
| |
|--------------------------------------
--------------------
| |
| ___ |
| |__| |
| |
|-------------------
<Viewbox Stretch="Fill">
<Canvas Width="400" Height="300">
<Rectangle Canvas.Left="100" Canvas.Top="100" Width="100" Height="100" Fill="Blue"/>
</Canvas>
</Viewbox>