【发布时间】:2015-03-31 00:34:18
【问题描述】:
我有以下画布:
<Canvas Width="800" Height="600">
<Rectangle Fill="#FF333333" Height="124" Width="500"
Canvas.Bottom="0" />
<Rectangle Fill="#FF333333" Height="124" Width="500"
Canvas.Bottom="150" Canvas.Left="150"/>
<Rectangle Fill="#FF333333" Height="124" Width="500"
Canvas.Bottom="300"/>
</Canvas>
我想获取矩形组占用的矩形空间的大小(宽度和高度)。 在上面的示例中,我期待这些值:
ContentWidth = 650 (= 500 + 150)
ContentHeight = 424 (= 300 + 124)
ActualWidth 和 ActualHeight 分别返回 800 和 600,这不是我想要的。 有什么想法吗?
【问题讨论】:
-
首先想到的是简单地循环遍历
Canvas.Children,计算4条边,并从中创建一个矩形。我不确定是否有更简单的方法,因为 Canvas 通常不关心它包含什么孩子,所以可能没有任何东西可以监控它们的大小。 -
这将是一种手动方法。不是我想要的。它可能会很烦人(我也很懒;))因为我可能会添加更多形状,如旋转三角形、线条等。我希望我能得到“绘制区域”的大小。没有更自动的方法吗?喜欢使用特定的属性?