gpt4 book ai didi

wpf - 绑定(bind)到 ActualHeight 不起作用

转载 作者:行者123 更新时间:2023-12-04 02:32:44 59 4
gpt4 key购买 nike

我尝试创建一个具有半透明圆形背景的自定义控件:

<Canvas>
<TextBlock x:Name="StopText" Text="Some test text"/>
<Rectangle Fill="SkyBlue"
Width="{Binding Source=StopText, Path=ActualHeight}"
Height="20"
RadiusX="5" RadiusY="5" Opacity="0.2"/>
</Canvas>

问题是我可能无法绑定(bind)到 ActualHeight/ActualWidth 属性,因为它们不是依赖项。

如何使矩形和文本框保持相同大小?

最佳答案

正确的绑定(bind)是在绑定(bind)到另一个元素时使用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 的宽度绑定(bind)到 TextBlockHeight,对吧?

如果这确实是您想要设置控件的方式,您需要将 Rectangle 的宽度绑定(bind)到 TextBlockActualWidth HeightActualHeight

更新根据下面的评论,这是一个使用没有绑定(bind)的 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>

GridCanvas use different layout systems ,并且由于您没有使用 Canvas 提供的功能,Grid 是更好的选择。

子元素的最大区别是 Rectangle 现在只使用 Horizo​​ntal 和 VerticalAlignmentStretch 跨越整个 Grid ,而不是担心任何东西的大小。

关于wpf - 绑定(bind)到 ActualHeight 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787312/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com