XAML Textblock无法居中

时间:2017-07-31 08:07:02

标签: c# xaml uwp uwp-xaml

我的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中预览(看起来与我想要的完全一样): enter image description here 实际结果: enter image description here 绿色PopUp中的TextBox不会居中,如您所见。我不知道为什么,也许我错过了什么,但一切对我来说都很好。

1 个答案:

答案 0 :(得分:2)

您可以像这样手动订阅SizeChanged的{​​{1}} -

Popup

更新

我通常会创建一个Popup.SizeChanged += (s,e) => PopupGrid.Width = Popup.ActualWidth; 弹出式窗口,它会公开UserControl属性,以便我可以传入动态文本,另一个MessageText标记可以切换其可见性。我也将它从命中测试中禁用,并允许它在几秒后解散。

隐藏和显示应该通过封装在控件内的IsOpen来完成。

最后,这个Storyboard应该是这样的 -

MessageControl

我已经提供了一个示例项目here供您参考,这就是它的样子 -

enter image description here