WPF Alert彈框控件 - 完全使用指南

WPF Alert彈框控件 - 完全使用指南

    • 概述
    • 快速開始
      • nuget
      • 安裝與引用
      • 基本用法
    • 功能特性詳細說明
      • AlertType 枚舉
      • 方法參數詳解
        • Show 方法(局部彈窗)
        • ShowGlobal 方法(全局彈窗)
    • 完整示例代碼
      • XAML 布局
      • C# 代碼實現
    • 界面演示
    • 功能特性對比表格
    • 自定義樣式參數表格
    • 高級用法
      • 1. 長時間顯示的提示
      • 2. 完全自定義樣式
      • 3. 手動關閉的提示
    • 注意事項
    • 總結

概述

MessageBoxGuo 是一個功能強大的WPF彈框控件庫,提供了現代化的Alert提示功能,支持局部和全局兩種顯示模式,以及多種消息類型和自定義選項。

快速開始

nuget

dotnet add package MessageBoxGuo --version 1.0.1
Install-Package MessageBoxGuo -Version 1.0.1

MessageBoxGuo

包地址:https://www.nuget.org/packages/MessageBoxGuo
git地址:https://gitee.com/gwhsss/auto-cad.-entity-tools

安裝與引用

首先在項目中引用 MessageBoxGuo 命名空間:

using MessageBoxGuo;

基本用法

// 顯示一個成功提示(局部)
AlertBox.Show("操作成功!", AlertType.Success, AlertContainer);// 顯示一個錯誤提示(全局)
AlertBox.ShowGlobal("操作失敗,請重試。", AlertType.Error);

功能特性詳細說明

AlertType 枚舉

類型說明默認顏色圖標
Success成功提示#67C23A (綠色)?
Error錯誤提示#F56C6C (紅色)?
Warning警告提示#E6A23C (橙色)?
Info信息提示#909399 (灰色)?

方法參數詳解

Show 方法(局部彈窗)
AlertBox.Show(string message,           // 必需:要顯示的消息內容AlertType type,           // 必需:消息類型Panel container,          // 必需:承載彈窗的容器(如Canvas)int duration = 3000,      // 可選:自動關閉時間(毫秒),默認3000Brush customBackground = null,  // 可選:自定義背景色Brush customForeground = null   // 可選:自定義前景色(文字和圖標顏色)
);
ShowGlobal 方法(全局彈窗)
AlertBox.ShowGlobal(string message,           // 必需:要顯示的消息內容AlertType type,           // 必需:消息類型int duration = 3000,      // 可選:自動關閉時間(毫秒),默認3000Brush customBackground = null,  // 可選:自定義背景色Brush customForeground = null   // 可選:自定義前景色(文字和圖標顏色)
);

完整示例代碼

XAML 布局

<Windowx:Class="MessageBoxGuoTests.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:local="clr-namespace:MessageBoxGuoTests"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"Title="WPF Alert彈框示例"Width="800"Height="600"mc:Ignorable="d"><Grid><!-- 按鈕區域 --><StackPanelWidth="300"HorizontalAlignment="Center"VerticalAlignment="Center"><!-- 局部彈窗測試按鈕 --><Button Content="成功提示(局部)" Click="SuccessButton_Click" Style="{StaticResource SuccessButtonStyle}"/><Button Content="錯誤提示(局部)" Click="ErrorButton_Click" Style="{StaticResource ErrorButtonStyle}"/><Button Content="警告提示(局部)" Click="WarningButton_Click" Style="{StaticResource WarningButtonStyle}"/><Button Content="信息提示(局部)" Click="InfoButton_Click" Style="{StaticResource InfoButtonStyle}"/><Button Content="自定義提示(局部)" Click="CustomButton_Click" Style="{StaticResource CustomButtonStyle}"/><Separator Height="20" Margin="10"/><!-- 全局彈窗測試按鈕 --><Button Content="成功提示(全局)" Click="GlobalSuccessButton_Click" Style="{StaticResource SuccessButtonStyle}"/><Button Content="錯誤提示(全局)" Click="GlobalErrorButton_Click" Style="{StaticResource ErrorButtonStyle}"/><Button Content="警告提示(全局)" Click="GlobalWarningButton_Click" Style="{StaticResource WarningButtonStyle}"/><Button Content="信息提示(全局)" Click="GlobalInfoButton_Click" Style="{StaticResource InfoButtonStyle}"/><Button Content="自定義提示(全局)" Click="GlobalCustomButton_Click" Style="{StaticResource CustomButtonStyle}"/><Separator Height="20" Margin="10"/><!-- 批量測試按鈕 --><Button Content="測試多個彈窗" Click="TestMultipleAlerts_Click" Style="{StaticResource TestButtonStyle}"/><Button Content="測試多個全局彈窗" Click="TestMultipleGlobalAlerts_Click" Style="{StaticResource TestButtonStyle}"/></StackPanel><!-- Alert彈框容器 --><Canvasx:Name="AlertContainer"Width="300"Height="0"Margin="20"HorizontalAlignment="Right"VerticalAlignment="Top"/></Grid>
</Window>

C# 代碼實現

using MessageBoxGuo;
using System.Windows;
using System.Windows.Threading;namespace MessageBoxGuoTests
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}// 局部彈窗示例private void SuccessButton_Click(object sender, RoutedEventArgs e){AlertBox.Show("操作成功!", AlertType.Success, AlertContainer);}private void ErrorButton_Click(object sender, RoutedEventArgs e){AlertBox.Show("操作失敗,請重試。", AlertType.Error, AlertContainer);}private void WarningButton_Click(object sender, RoutedEventArgs e){AlertBox.Show("警告:請注意操作權限。", AlertType.Warning, AlertContainer);}private void InfoButton_Click(object sender, RoutedEventArgs e){AlertBox.Show("提示:系統將于今晚進行維護。", AlertType.Info, AlertContainer);}private void CustomButton_Click(object sender, RoutedEventArgs e){AlertBox.Show("自定義消息:這是一個自定義樣式的提示框。", AlertType.Info, AlertContainer, 5000, Brushes.Purple, Brushes.White);}// 全局彈窗示例private void GlobalSuccessButton_Click(object sender, RoutedEventArgs e){AlertBox.ShowGlobal("全局操作成功!", AlertType.Success);}private void GlobalErrorButton_Click(object sender, RoutedEventArgs e){AlertBox.ShowGlobal("全局操作失敗,請重試。", AlertType.Error);}private void GlobalWarningButton_Click(object sender, RoutedEventArgs e){AlertBox.ShowGlobal("全局警告:請注意操作權限。", AlertType.Warning);}private void GlobalInfoButton_Click(object sender, RoutedEventArgs e){AlertBox.ShowGlobal("全局提示:系統將于今晚進行維護。", AlertType.Info);}private void GlobalCustomButton_Click(object sender, RoutedEventArgs e){AlertBox.ShowGlobal("全局自定義消息:這是一個自定義樣式的提示框。", AlertType.Info, 5000, Brushes.Purple, Brushes.White);}// 批量測試private void TestMultipleAlerts_Click(object sender, RoutedEventArgs e){for (int i = 1; i <= 5; i++){int index = i;DispatcherTimer timer = new DispatcherTimer{Interval = TimeSpan.FromMilliseconds(index * 500)};timer.Tick += (s, args) =>{timer.Stop();AlertBox.Show($"測試消息 {index}", AlertType.Info, AlertContainer);};timer.Start();}}private void TestMultipleGlobalAlerts_Click(object sender, RoutedEventArgs e){for (int i = 1; i <= 5; i++){int index = i;DispatcherTimer timer = new DispatcherTimer{Interval = TimeSpan.FromMilliseconds(index * 500)};timer.Tick += (s, args) =>{timer.Stop();AlertBox.ShowGlobal($"全局測試消息 {index}", AlertType.Info);};timer.Start();}}}
}

界面演示

MessageBoxGuo

功能特性對比表格

特性Show (局部)ShowGlobal (全局)說明
顯示位置指定容器內屏幕右上角局部在應用內,全局在整個系統
容器要求需要Panel容器無需容器全局自動創建容器
多顯示器只顯示在當前窗口支持多顯示器全局彈窗在主顯示器顯示
生命周期隨窗口關閉獨立存在全局彈窗不依賴父窗口
使用場景應用內提示全局通知根據需求選擇合適的方式

自定義樣式參數表格

參數類型默認值說明
durationint3000ms自動關閉時間,0表示不自動關閉
customBackgroundBrushnull自定義背景顏色,覆蓋默認樣式
customForegroundBrushnull自定義文字和圖標顏色
messagestring必需提示消息內容,支持多行文本
typeAlertType必需消息類型,決定默認樣式和圖標

高級用法

1. 長時間顯示的提示

// 顯示10秒的提示
AlertBox.Show("重要提示,請仔細閱讀。", AlertType.Warning, AlertContainer, 10000);

2. 完全自定義樣式

// 使用自定義顏色
AlertBox.Show("自定義樣式提示", AlertType.Info, AlertContainer, 4000, Brushes.LightBlue, Brushes.DarkBlue);

3. 手動關閉的提示

// 設置為0表示不自動關閉,需要用戶手動關閉
AlertBox.Show("請手動關閉此提示", AlertType.Info, AlertContainer, 0);

注意事項

  1. 線程安全: 所有彈窗操作都會自動切換到UI線程執行
  2. 性能優化: 彈窗使用淡入淡出動畫,避免突兀顯示
  3. 內存管理: 彈窗關閉后會自動清理資源
  4. Z-index: 全局彈窗始終置頂,不會被其他窗口遮擋

總結

MessageBoxGuo 提供了一個簡單易用但功能強大的彈窗解決方案,支持多種消息類型、自定義樣式和顯示位置。無論是應用內提示還是全局通知,都能滿足各種業務場景的需求。

通過合理的參數配置,您可以輕松創建出符合品牌風格的提示框,提升用戶體驗和應用的專業性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96619.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96619.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96619.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可視化-模塊1-HTML-01

1-軟件下載&#xff1a; 軟件名稱&#xff1a;HBuilderX 官網地址&#xff1a; https://www.dcloud.io/hbuilderx.html 下載文佳-解壓縮-打開exe文件 創建快捷方式至桌面 2-創建項目 【普通項目】-【基本HTML項目】-【項目名&#xff1a;week1-1】 【index】輸入&#xff1…

機器翻譯 (Machine Translation) 經典面試筆試50題(包括詳細答案)

更多內容請見: 機器翻譯修煉-專欄介紹和目錄 文章目錄 第一部分:基礎理論與概念 (1-15題) 1. 題目: 什么是機器翻譯(MT)?請簡述其發展歷程中的幾個主要范式。 2. 題目: 機器翻譯的主要評價指標有哪些?請詳細解釋BLEU指標的計算原理和優缺點。 3. 題目: 什么是平行語料…

linux中文本文件操作之grep命令

文章目錄背景案例demo環境方式一、安裝wsl方式二、安裝grep一、查找指定字符串二、忽略大小寫查找三、查找時顯示行號四、統計匹配的次數五、精準匹配一個單詞六、顯示匹配上下文七、只顯示匹配的內容八、按固定字符串匹配背景 在日常運維中會對日志文件&#xff0c;使用grep命…

鏈表漫游指南:C++ 指針操作的藝術與實踐

文章目錄0. 前言1. 鏈表的分類2. 單鏈表的實現2.1 鏈表的基本結構——節點&#xff08;Node&#xff09;2.2 核心操作詳解2.2.1 構造和析構2.2.2 插入操作2.2.3 刪除操作2.3.4 其他操作2.4 總結3. 雙向鏈表的實現3.1 基本結構設計3.2 基本操作3.2.1 初始化與銷毀3.2.2 插入與刪…

Claude Code賦能企業級開發:外賣平臺核心系統的智能化重構

開篇&#xff1a;萬億市場背后的技術挑戰中國外賣市場日訂單量超過1億單&#xff0c;每一單背后都是一個復雜的技術鏈條&#xff1a;用戶下單→商家接單→騎手搶單→實時配送→評價反饋。構建這樣一個支撐千萬級并發、涉及地理位置計算、實時調度、支付結算的超級平臺&#xff…

【使用Unsloth 微調】數據集的種類

1. 什么是數據集 對于大型語言模型&#xff08;LLMs&#xff09;&#xff0c;數據集是用于訓練模型的數據集合。為了訓練有效&#xff0c;文本數據需要能夠被分詞&#xff08;tokenized&#xff09;。創建數據集的關鍵部分之一是聊天模板&#xff08;chat template&#xff09;…

【碼蹄杯】2025年本科組省賽第一場

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;算法競賽 文章目錄1. MC0455 四大名著-西游簽到2. MC0456 斬斷靈藤3. MC0457 符咒封印4. MC0458 移鐵術5. MC0459 昆侖墟6. MC0460 星空迷軌陣7. MC0461 排隊8. MC0462 最后一難正文 總共8道題。 1. MC0455 四大名著-西…

CentOS 10安裝Ollama

前置說明 linux服務器版本&#xff1a;CentOS10 ollama版本&#xff1a;v0.11.6 下載安裝包 下載安裝包 官網地址&#xff1a;Ollama 下載地址&#xff1a;Download Ollama 選擇linux平臺&#xff0c;由于使用官網提供的腳本直接安裝容易失敗&#xff0c;這里選擇手動下…

手機、電腦屏幕的顯示壞點檢測和成像原理

如今&#xff0c;手機和電腦屏幕已成為人們日常生活和工作中不可或缺的一部分。無論是處理文檔、觀看視頻&#xff0c;還是進行專業設計&#xff0c;屏幕的顯示質量都直接影響著用戶體驗。本文將介紹屏幕顯示的基本原理&#xff0c;包括RGB色素構成和成像機制&#xff0c;并進一…

文件與fd

文件與fd一、前置預備二、復習c語言文件三、系統文件認識3.1 系統層面有關文件的接口&#xff08;open&#xff09;&#xff1a;![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/b15577967d1445b08cd5252f2009683a.png)3.2 簡單使用open參數3.3 語言vs系統3.4 進一步理…

語義通信高斯信道仿真代碼

1?? 代碼 def AWGN(coding, snr, devicecpu):"""為輸入張量添加高斯白噪聲&#xff08;AWGN&#xff09;&#xff0c;根據指定的 SNR&#xff08;分貝&#xff09;控制噪聲強度。參數&#xff1a;coding (torch.Tensor): 輸入張量&#xff0c;形狀為 [batch_s…

unity中實現機械臂自主運動

目的&#xff1a;導入機械臂的fbx模型&#xff0c;利用C#編寫腳本實現機械臂的自主運動步驟1.在 Unity 中&#xff0c;右鍵點擊 “Assets” 文件夾&#xff0c;選擇 “Create” -> “C# Script” 來創建一個新的 C# 腳本命名為 “ArmController”。2.雙擊打開腳本&#xff0…

Python 版本與 package 版本兼容性檢查方法

網羅開發&#xff08;小紅書、快手、視頻號同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

深入剖析分布式事務的Java實現:從理論到Seata實戰

文章目錄深入剖析分布式事務的Java實現&#xff1a;從理論到Seata實戰引言&#xff1a;分布式事務的現實挑戰1. 分布式事務理論基礎1.1 從ACID到CAP/BASE1.2 典型業務場景分析2. 主流分布式事務解決方案對比2.1 技術方案全景圖2.2 選型建議3. Seata框架深度解析3.1 Seata架構設…

自建知識庫,向量數據庫 (十一)之 量化對比余弦——仙盟創夢IDE

向量比對&#xff1a;開啟企業經營自動化搜索新視野在當今數字化時代&#xff0c;企業經營自動化已成為提升競爭力的關鍵。其中&#xff0c;搜索功能作為企業獲取信息、連接用戶與資源的重要入口&#xff0c;其效率和準確性直接影響企業的運營效率和用戶體驗。向量比對在企業經…

Spring Cloud系列—SkyWalking告警和飛書接入

上篇文章&#xff1a; Spring Cloud系列—SkyWalking鏈路追蹤https://blog.csdn.net/sniper_fandc/article/details/149948321?fromshareblogdetail&sharetypeblogdetail&sharerId149948321&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目…

【問題】解決docker的方式安裝n8n,找不到docker.n8n.io/n8nio/n8n:latest鏡像的問題

問題概覽 用docker方式安裝n8n&#xff0c;遇到錯誤&#xff0c;安裝不了的問題&#xff1a; Unable to find image docker.n8n.io/n8nio/n8n:latest locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request can…

機器人控制基礎:串級PID控制算法的參數如何整定?

目錄 一、整定前的準備 二、內環(副環)參數整定(核心步驟) 1. 斷開主環,單獨測試內環 2. 內環參數整定(按 “比例→積分→微分” 順序) (1)比例系數(kp)整定 (2)積分系數(ki)整定 (3)微分系數(kd)整定(可選) 3. 驗證內環抗擾動能力 三、外環(主…

HTTP性能優化實戰指南(含代碼/圖表/案例)

HTTP性能優化實戰指南&#xff08;含代碼/圖表/案例&#xff09;一、性能優化關鍵指標TTFB&#xff08;Time To First Byte&#xff09;: 服務器響應時間FCP&#xff08;First Contentful Paint&#xff09;: 首內容渲染時間LCP&#xff08;Largest Contentful Paint&#xff0…

QT代碼框架小案例:一個簡單的時間類(Time)及其實例化程序,模擬了時間的設置、顯示和自動流逝功能,類似一個簡易電子時鐘。

一、代碼框架二、運行終端顯示三、代碼詳細注釋test.pro# 指定項目類型為應用程序&#xff08;而非庫或其他類型&#xff09; TEMPLATE app# 配置項目&#xff1a;啟用控制臺輸出&#xff0c;使用C11標準 CONFIG console c11# 移除配置&#xff1a;不生成應用程序捆綁包&…