zoukankan      html  css  js  c++  java
  • 【WPF】对话框/消息弹窗

    非模式对话框

    需求:弹窗是非模式对话框,即可以多个弹窗弹出,且弹窗后面的窗体可以被操作,不会被锁定。

    自定义的窗体Window实现以下步骤:

    1. 在C#代码中弹出窗体时,使用 window.Show() 而不是 window.ShowDialog();
    2. 最好设置 window.Topmost = true; 可以在XAML顶部写、也可以在C#代码中设置。否则该窗体可以被主界面遮挡(比如按Tab切换到主界面时),该弹窗没有被关闭,但又看不到。
    3. 如有需要,可以设置 ResizeMode=”NoResize”; 可以在XAML顶部写、也可以在C#代码中设置。这样该弹窗将无法改变宽高,且没有最大化、最小化按钮。

    对话框、消息弹窗

    //定义消息框             
    string messageBoxText = "需要保存吗?";
    string caption = "HELLO";
    MessageBoxButton button = MessageBoxButton.YesNoCancel;
    MessageBoxImage icon = MessageBoxImage.Warning;
    //显示消息框              
    MessageBoxResult result = MessageBox.Show(messageBoxText, caption, button, icon);
    //处理消息框信息              
    switch (result)
    {
        case MessageBoxResult.Yes:
            // ...                      
            break;
        case MessageBoxResult.No:
            // ...                      
            break;
        case MessageBoxResult.Cancel:
            // ...                     
            break;
    }  

    简化的写法:

    MessageBoxResult result = MessageBox.Show("这里是消息内容", "这是标题", MessageBoxButton.YesNo);
    if (result == MessageBoxResult.Yes)
    {
        // do something
    }
    else
    {
        // do something
    }

    打开文件对话框

    //打开文件对话框              
    Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();              
    dlg.FileName = "Document"; // Default file name              
    dlg.DefaultExt = ".txt"; // Default file extension              
    dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension                
    // Show open file dialog box              
    Nullable<bool> result = dlg.ShowDialog();                
    // Process open file dialog box results              
    if (result == true)              
    {                  
        // Open document                  
        string filename = dlg.FileName;                    
        //...             
    }  
  • 相关阅读:
    android中requestFocus
    @SuppressLint("NewApi")和@TargetApi()的区别
    Gradle基础
    Gradle build-info.xml not found for module app.Please make sure that you are using gradle plugin '2.0.0-alpha4' or higher.
    Duplicate files copied in APK META-INF/DEPENDENCIES
    解决Gradle DSL method not found: ‘android()’
    SSL peer shut down incorrectly
    如何测试远端TCP和UDP端口是否开放
    方法总比困难多
    图灵简传
  • 原文地址:https://www.cnblogs.com/guxin/p/wpf-message-dialog.html
Copyright © 2011-2022 走看看