正确的绑定是在绑定到另一个元素时使用ElementName
,而不是Source
:
<Canvas>
<TextBlock x:Name="StopText" Text="Some test text"/>
<Rectangle Fill="SkyBlue"
Width="{Binding ElementName=StopText, Path=ActualHeight}"
Height="20"
RadiusX="5" RadiusY="5" Opacity="0.2"/>
</Canvas>
另外,您确实意识到您正在将 的宽度绑定Rectangle
到Height
的TextBlock
,对吗?
如果这确实是您想要设置控件的方式,您将需要将Rectangle
' 的 Width绑定到TextBlock
'ActualWidth
和。Height
ActualHeight
更新
根据下面的评论,这是一个使用Grid
没有绑定的实现:
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TextBlock x:Name="StopText" Text="Some test text"/>
<Rectangle Fill="SkyBlue"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
RadiusX="5" RadiusY="5" Opacity="0.2"/>
</Grid>
Grid
并Canvas
使用不同的布局系统,并且由于您没有使用所Canvas
提供的功能,Grid
因此是更好的选择。
子元素的最大区别在于Rectangle
现在只使用 Horizontal 和VerticalAlignment
toStretch
跨越整个Grid
,而不用担心任何东西的大小。