【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;                    
    //...             
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM