正しいバインディングは、別の要素にバインドするときに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
'sWidthをTextBlock
'sActualWidth
およびHeight
にバインドする必要がありますActualHeight
。
UPDATE
以下のコメントによると、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
水平方向と全体をVerticalAlignment
使用するようになったことです。Stretch
Grid