XAML - 对话框



所有独立应用程序都有一个主窗口,该窗口公开一些功能和显示应用程序通过其 GUI 运行的数据。应用程序还可以显示附加窗口以执行以下操作:-

  • 向用户显示一些特定信息。
  • 从用户处收集有用信息。
  • 既显示又收集重要信息。

示例

我们来看一下以下示例。在主窗口中,有一个按钮和一个文本框。当用户单击此按钮时,它会打开另一个带有是、否和取消按钮的对话框,并在其上显示一条消息,提示用户单击一个按钮。

当用户单击一个按钮时,当前对话框将关闭,并显示一个文本框,其中包含“单击哪个按钮”的信息。

以下是一些属性的 XAML 代码,用于创建和初始化一个按钮和一个文本框:-

<Window x:Class = "XAMLDialog.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <Button Height = "23" 
         Margin = "100" 
         Name = "ShowMessageBox" 
         VerticalAlignment = "Top" 
         Click = "ShowMessageBox_Click">Show Message Box</Button>
			
      <TextBox Height = "23" 
         HorizontalAlignment = "Left" 
         Margin = "181,167,0,0" 
         Name = "textBox1" 
         VerticalAlignment = "Top" 
         Width = "120" /> 
   </Grid> 
</Window>

以下是实现按钮单击事件的 C# 代码。

using System; 
using System.Windows; 
using System.Windows.Controls;

namespace XAMLDialog {
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window {
      public MainWindow() { 
         InitializeComponent(); 
      } 
      private void ShowMessageBox_Click(object sender, RoutedEventArgs e) { 
         string msgtext = "Click any button"; 
         string txt = "My Title"; 
         MessageBoxButton button = MessageBoxButton.YesNoCancel;
         MessageBoxResult result = MessageBox.Show(msgtext, txt, button);

         switch (result) { 
            case MessageBoxResult.Yes: 
               textBox1.Text = "Yes"; 
               break;
            case MessageBoxResult.No: 
               textBox1.Text = "No"; 
               break; 
            case MessageBoxResult.Cancel: 
               textBox1.Text = "Cancel"; 
               break; 
         }
      }
   }
}

当您编译并执行上述代码时,它将产生以下输出:-

Dialog Box Output

当您单击该按钮时,它会显示另一个对话框,如下所示,提示用户单击一个按钮。现在,单击是按钮。

Dialog Box 1

它使用按钮内容更新文本框。

TextBox
xaml_controls.htm
广告