根据一些人的说法,实际宽度可以使用下面示例中显示的ActualWidth属性来获得。这很有道理,但我似乎遇到了相互矛盾的行为。
在上述设置中,行为与期望一致,并且尽管紧密挤在一起,但包含画布的面板中的下一个元素没有被前一个元素覆盖。
然而,如果我将边距调整得更宽一些,我可以清楚地看到画布侵入了下一个元素,估计是与我在margin属性中请求的像素数相同。因此,实际宽度不是实际宽度,而是不包括边距的宽度。
1. 我是否混淆了什么,如果是,是什么? 2. 如何获取并绑定到实际渲染宽度?
<Canvas Width="{Binding ActualWidth,ElementName=Expy}">
<Expander x:Name="Expy"
HorizontalAlignment="Left"
Margin="0,0,0,0"
VerticalAlignment="Top" ...>
...
</Expander>
</Canvas>
在上述设置中,行为与期望一致,并且尽管紧密挤在一起,但包含画布的面板中的下一个元素没有被前一个元素覆盖。
然而,如果我将边距调整得更宽一些,我可以清楚地看到画布侵入了下一个元素,估计是与我在margin属性中请求的像素数相同。因此,实际宽度不是实际宽度,而是不包括边距的宽度。
1. 我是否混淆了什么,如果是,是什么? 2. 如何获取并绑定到实际渲染宽度?
Canvas
在这种情况下是没有问题的(请参见此 SO 问题)。@Clemens - Steven Rands