我有Canvas
Rectangle
:
<Canvas>
<Rettangle/>
</Canvas>
我想要的是,当我调整我的Canvas大小时,Rectangle保持相同的相对位置,例如:
----------------------------------------
| |
| |
| ____ |
| | | |
| |____| |
| |
|--------------------------------------
--------------------
| |
| ___ |
| |__| |
| |
|-------------------
我该怎么办?
答案 0 :(得分:4)
为什么不将所有内容放在Viewbox?
中<Viewbox Stretch="Fill">
<Canvas Width="400" Height="300">
<Rectangle Canvas.Left="100" Canvas.Top="100" Width="100" Height="100" Fill="Blue"/>
</Canvas>
</Viewbox>
答案 1 :(得分:1)
最好的解决方案是创建自己的自定义画布,并使用这些问题中提到的一些技术实现重新调整大小和重新定位 -
How do you do relative positioning in WPF?
WPF: Setting the Width (and Height) as a Percentage Value
但对我来说,这个功能与缩放非常相似;如果您的窗口只有Canvas,您可以尝试使用来自Kael Rowan的ZoomableCanvas,并在窗口重新调整大小时显式放大/缩小:
http://blogs.msdn.com/b/kaelr/archive/2010/07/29/zoomablecanvas.aspx