在StackPanel中,我希望TextBlock的高度决定图像的高度,但试图将图像高度绑定到TextBlock ActualHeight会导致图像消失。TextBlock的高度将根据所使用字体的大小而变化。
StackPanel的定义如下:
<StackPanel Orientation="Horizontal">
<Image Source="{Binding HyperlinkIconImagePath}"
Height="{Binding ElementName=hyperlinkTextBlock, Path=ActualHeight}"
Margin="{StaticResource IconLeftMargin}"
VerticalAlignment="Center"/>
<TextBlock>
<Hyperlink
NavigateUri="{Binding HyperlinkUri}">
<TextBlock
Name="hyperlinkTextBlock"
Text="{Binding HyperlinkDisplayedText}"/>
</Hyperlink>
</TextBlock>
</StackPanel>
我已经尝试了很多不同的方法,但没有一个是有效的。非常感谢任何帮助。注意,这个StackPanel包含在一个ControlTemplate中。
这个问题的解决方案来自一个相当微妙的方向。我最初试图绑定到TextBlock的ActualHeight值。在布局过程中,ActualHeight值在被Image Height属性引用时显然还没有确定。然后我考虑使用在TextBlock中显示的字体的大小,并且这个FontSize值显然已经建立并且可用。
<Image Source="{Binding HyperlinkIconImagePath}"
Height="{Binding ElementName=HyperlinkTextBlock, Path=FontSize}"
Margin="{StaticResource IconLeftMargin}"
VerticalAlignment="Center"/>
因此,我更改了Image Height绑定以引用TextBlock字体大小,这导致了成功的呈现。
tryVerticalAlignment="Center"
:
& lt; TextBloc VerticalAlignment ="Center"…/祝辞