【发布时间】:2017-07-31 21:18:25
【问题描述】:
我的 XAML 中有一个 PopUp 元素,里面有一个带有 TextBlock 的 Grid。
现在的问题是,文本和网格不能通过水平和垂直对齐来居中...
XAML:
<Popup x:Name="Popup" Height="30px" VerticalAlignment="Top">
<Grid Height="30px"
Background="Green"
Width="{Binding ActualWidth, ElementName=Popup}">
<TextBlock VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="White"
Text="Änderungen wurden übernommen">
</TextBlock>
</Grid>
</Popup>
Visual Studio 中的预览(看起来和我想做的一模一样): 实际结果: 如您所见,绿色 PopUp 内的 TextBox 未居中。而且我不知道为什么,也许我错过了一些东西,但对我来说一切看起来都很好。
【问题讨论】:
-
你不能信任
Width="{Binding ActualWidth, ElementName=Popup},如果Popup的宽度更新了,Grid的宽度不会受到影响。 -
你好,我的朋友 :D 我怎样才能改变宽度然后到父控件?
-
首先,您到底想在这里展示什么?只是一个浮动在顶部的消息框?
-
是的,它就像用户点击按钮时的信息(带有淡入淡出动画)
-
但是
Popup不支持开箱即用的动画。Flyout的动画是半生不熟的。你在实施你自己的吗?您可以尝试订阅 SizeChanged 事件并手动更新宽度,但我会为此创建自己的控件。