窗口消息框中的 C# WPF XAML

Posted

技术标签:

【中文标题】窗口消息框中的 C# WPF XAML【英文标题】:C# WPF XAML In Window Messages Boxes 【发布时间】:2016-06-09 14:47:21 【问题描述】:

我是 C# WPF 的新手,我创建了一个 Popup 窗口,其中包含一个 DataGrid 来保存一些数据。在某些情况下,如果数据中有任何错误,我想在窗口底部的同一个弹出窗口中显示此错误(参见屏幕截图)。这个想法是用户可以然后单击确定,消息将消失,再次显示完整的数据网格。

有人知道怎么做吗?

我不想在单独的窗口中出现另一个弹出消息框,我希望所有消息都显示/堆叠在与数据网格相同的弹出窗口中。

【问题讨论】:

以下链接将帮助您重叠消息容器***.com/questions/5450985/… 然后在按钮单击时通过visibility="collapsed" 隐藏容器 【参考方案1】:

下面,XAML 中有 2 个网格:主网格包含 DataGrid,另一个网格包含错误 UI。错误网格通常是折叠的(Visibility 设置为 Visibility.Collapsed)。

当需要显示错误信息时,将错误网格的Visibility设置为Visibility.Visible,即显示网格。当用户点击“关闭”按钮时,错误网格的Visibility 设置为Visibility.Collapsed

没有单独的窗口或弹出窗口。一切都包含在主视图中。

XAML:

  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition/>
      <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <DataGrid>
    </DataGrid>
    <Button Grid.Column="1" Content="Show Message Window" VerticalAlignment="Center" Click="Button_Click_1"/>
    <!-- This is the "error grid"-->
    <Grid VerticalAlignment="Bottom" Height="Auto" 
       Background="AliceBlue" Visibility="Collapsed" Name="grdError">
      <TextBlock Text="Oops.  This is an error!"/>
      <Button Content="Dismiss" HorizontalAlignment="Right" Click="Button_Click_3"/>
    </Grid>
  </Grid>

代码背后:

  public partial class MainWindow : Window
  
    public MainWindow()
    
      InitializeComponent();
    

    private void Button_Click_1(object sender, RoutedEventArgs e)
    
      grdError.Visibility = Visibility.Visible;
    

    private void Button_Click_3(object sender, RoutedEventArgs e)
    
      grdError.Visibility = Visibility.Collapsed;
    
  

【讨论】:

谢谢。让我试试这个!

以上是关于窗口消息框中的 C# WPF XAML的主要内容,如果未能解决你的问题,请参考以下文章

在窗口标题和消息框中显示错误的语言:win32 应用程序,opengl

如何在窗口/消息框中显示500字的输出?

C# WPF 建立渐隐窗口

从另一个窗口访问和更改 WPF 中的控件

C#:在自定义消息框中显示进度条变化

WPF文本框中的垂直对齐