在DevExpress WPF v22.2版本中,官方引入了一系列功能來幫助改進一個常見WPF UI元素——MessageBox的用戶體驗,新的MessageBox相關選項包括:
- 文本選擇支持
- 自定義圖像支持
- 帶有計時器的按鈕,可以自動關閉窗口
ThemedMessageBox類允許開發者在WPF驅動的應用程序中實現所有這些選項。
DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有着強大互動功能的XAML基礎應用程序,這些應用程序專注於當代客戶的需求和構建未來新一代支持觸摸的解決方案。
DevExpress技術交流羣8:523159565 歡迎一起進羣討論
文本選擇
標準的MessageBox不允許用戶選擇在消息框中顯示的文本,複製消息框文本的功能可以幫助組織更好地滿足其用戶的需求,如果用戶需要引用消息、複製錯誤消息文本或與同事共享消息內容,則文本選擇將非常有用。
例如,您可能希望使用帶有文本選擇的消息框,在錯誤編號旁邊顯示錯誤消息。使用我們的WPF MessageBox,用戶可以選擇和複製錯誤消息文本,並共享用於故障排除的數字。
實現
要在下一個WPF應用程序中合併此特性,請使用ThemedMessageBox類,在ThemedMessageBoxParameters對象中設置AllowTextSelection屬性爲true:
void Button_Click(object sender, RoutedEventArgs e) { var parameters = new ThemedMessageBoxParameters() { AllowTextSelection = true }; ThemedMessageBox.Show( title: "Error message", text: $"The error code is {errorCode}", messageBoxButtons: MessageBoxButton.OK, messageBoxParameters: parameters ); }
在本例中,當用戶單擊按鈕時將出現消息框,AllowTextSelection屬性激活消息框中的文本選擇。
自定義圖像
自定義圖像可用於傳達給定消息的重要性,通過使用自定義圖像,您可以提供更直觀的用戶界面,併爲消息本身提供可視化上下文。
例如,可以顯示一條帶有感嘆號的警告消息,提醒用戶注意潛在的問題。可能會顯示帶有紅色圖標的錯誤消息,以指示問題的嚴重性。可能會顯示一條帶有綠色/藍色圖標的確認消息,表明操作已成功執行。
此外,自定義圖表有助於區分按鈕(使用戶更容易識別那個按鈕執行什麼操作),當按鈕具有相似或相同的標籤時,此選項尤其有用。
實現
要將自定義圖像添加到消息框中,請使用ThemedMessageBox類。使用以下Show方法參數來定義在ThemedMessageBox中顯示的圖像:
- icon參數允許您從MessageBoxImage枚舉中選擇一個消息框圖像。
- image參數允許您指定自定義圖像。
ThemedMessageBox.Show( // ... icon: MessageBoxImage.Warning, // OR image: new BitmapImage(new System.Uri("pack://application:,,,/WarningImage.png")) );
你也可以在ThemedMessageBoxParameters對象中指定一個圖像:
void Button_Click(object sender, RoutedEventArgs e) { var parameters = new ThemedMessageBoxParameters(MessageBoxImage.Warning) { }; // OR var parameters = new ThemedMessageBoxParameters(new BitmapImage(new System.Uri("pack://application:,,,/WarningImage.png"))) { }; ThemedMessageBox.Show( // ... messageBoxParameters: parameters ); }
應用Glyph和GlyphAlignment屬性來定義按鈕圖像並設置按鈕內的圖像位置。
void Button_Click(object sender, RoutedEventArgs e) { var buttonApply = new UICommand() { // ... Glyph = new System.Uri("pack://application:,,,/DevExpress.Images.v22.2;component/SvgImages/Icon Builder/Actions_Check.svg") }; var buttonCancel = new UICommand() { // ... Glyph = new System.Uri("pack://application:,,,/DevExpress.Images.v22.2;component/SvgImages/Icon Builder/Actions_Delete.svg") };
自動關閉消息框
你可以合併自動關閉的消息框(在指定的時間範圍之後),以便向用戶顯示簡短的通知,這個選項可以幫助向用戶傳達重要的信息,而不需要額外的操作。
自動關閉的消息框將有助於防止消息框無限期地留在屏幕上,如果用戶進行了與設置相關的更改,並且系統需要確認是否應該應用更改,則這可能很有價值。
例如,自動關閉的消息框可以提醒用戶有關新設置或通知他們可以應用更改。在這種情況下,用戶將收到狀態反饋,而不需要採取額外的操作。
實現
要顯示消息框並自動關閉它,可以設置ThemedMessageBox自動單擊其默認按鈕所使用的時間框架。要設置這個時間範圍,在ThemedMessageBoxParameters對象中指定TimerTimeout和TimerFormat屬性。
下面的代碼示例在ThemedMessageBox顯示在屏幕上5秒後單擊Cancel按鈕:
void Button_Click(object sender, RoutedEventArgs e) { var parameters = new ThemedMessageBoxParameters(MessageBoxImage.Information) { TimerTimeout = new System.TimeSpan(0, 0, 5), TimerFormat = "{0} ({1:%s} sec.)" }; ThemedMessageBox.Show( title: "Information", text: "Apply new settings?", messageBoxButtons: MessageBoxButton.OKCancel, defaultButton: MessageBoxResult.Cancel, messageBoxParameters: parameters ); }
更多DevExpress線上公開課、中文教程資訊請上中文網獲取