可高度自定义的MessageBox

in 网站建设
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

MessageBoxTouch

WTFPL

因为系统MessageBox按钮和字体太小, 所以自己写了个方便更改外观的MessageBox. 有什么好玩的功能也可以扩展上去. 下有演示图.

GitHub项目地址

特性

用法

图片示例

示例

代码示例

兼容写法

返回值为MessageBoxResult型.

MessageBox.Show("message");
MessageBox.Show("message", "title", MessageBoxButton.OKCancel, MessageBoxImage.Question);

自定义写法

返回值为int型, 值为参数按钮列表中的索引.

MessageBox.Show(new List<object> { "btn1" }, "msg");
MessageBox.Show(new List<object> { new ButtonSpacer(250), "btn1", "btn2", "btn3", "btn4", "btn5", new ButtonSpacer(30) }, "msg", "title", MessageBoxImage.Asterisk);

修改式样属性

单独修改

添加在Show函数之前

MessageBox.ButtonPanelColor = new MessageBoxColor("red");
MessageBox.WindowMinHeight = 300;
MessageBox.MessageFontSize = 22;
MessageBox.Show(new List<object> { "btn1" }, "msg");
批量修改
PropertiesSetter propertiesSetter = new PropertiesSetter();
propertiesSetter.ButtonBorderThickness = new Thickness(10);
propertiesSetter.MessagePanelColor = new MessageBoxColor(Colors.black);
MessageBox.Show(propertiesSetter, "message", "title", MessageBoxButton.OKCancel, MessageBoxImage.Question);
MessageBox.Show(propertiesSetter, new List<object> { "btn1" }, "msg");
PropertiesSetter propertiesSetter = new PropertiesSetter();
propertiesSetter.ButtonBorderThickness = new Thickness(10, 0, 0, 0);
propertiesSetter.MessagePanelColor = new MessageBoxColor("#222DDD");
MessageBox.PropertiesSetter = propertiesSetter;
MessageBox.Show(new List<object> { new TextBox(), "btn1" }, "msg");

修改按钮区域

插入空白

在传入的List<object>中对应位置插入一个ButtonSpacer实例. 构造函数参数可为空或指定宽度值.

插入自定义控件

在传入的List<object>中对应位置插入插入一个FrameworkElement派生类的实例, 即可在对应位置显示相应控件.
列宽由插入的控件的宽度决定.

int result = MessageBox.Show(new List<object> { new TextBox(), "btn1", "btn2" }, "msg");
TextBox tb = (TextBox)MessageBox.GetBtnList()[0];
MessageBox.Show(tb.Text == string.Empty ? "用户未输入" : tb.Text, (string)MessageBox.GetBtnList()[result]);

可操作的属性

属性 状态
窗口标题 / 消息 / 按钮 已实装
窗口锁高 已实装
窗口初始高度与宽度 已实装
消息区域换行风格 已实装
各区域文本字体 已实装
各区域文本大小 已实装
各区域文本颜色 已实装
各区域透明度 已实装
各区域背景色 已实装
各区域边框颜色 已实装
各区域边框宽度 已实装
窗口渐显时间 已实装
自定窗口打开与关闭动画 已实装
自定义图标 已实装
是否应用窗口关闭按钮 已实装
按钮动作样式 已实装
窗口计时 / 立即关闭 已实装

成员函数与属性

MessageBox属性 类型 含义 静态 状态
TitleText string 设置 / 取得标题文字 已实装
MessageText string 设置 / 取得消息文字 已实装
LockHeight bool 是否锁住窗口高度不允许自动增长 已实装
TextWrappingMode TextWrapping 消息段落换行风格 已实装
WindowWidth double 窗口宽度 已实装
WindowMinHeight double 窗口最小 (初始) 高度 已实装
TitleFontFamily FontFamily 标题文本字体 已实装
MessageFontFamily FontFamily 消息文本字体 已实装
ButtonFontFamily FontFamily 按钮文本字体 已实装
TitleFontSize int 标题文本大小 已实装
MessageFontSize int 消息文本大小 已实装
ButtonFontSize int 按钮文本大小 已实装
TitleFontColor MessageBoxColor 标题文本颜色 已实装
MessageFontColor MessageBoxColor 消息文本颜色 已实装
ButtonFontColor MessageBoxColor 按钮文本颜色 已实装
WindowOpacity double 窗口整体透明度 已实装
TitleBarOpacity double 标题区域透明度 已实装
MessageBarOpacity double 消息区域透明度 已实装
ButtonBarOpacity double 按钮区域透明度 已实装
TitlePanelColor MessageBoxColor 标题区域背景色 已实装
MessagePanelColor MessageBoxColor 消息区域背景色 已实装
ButtonPanelColor MessageBoxColor 按钮区域背景色 已实装
WndBorderColor MessageBoxColor 窗口边框颜色 已实装
TitlePanelBorderColor MessageBoxColor 标题区域边框颜色 已实装
MessagePanelBorderColor MessageBoxColor 消息区域边框颜色 已实装
ButtonPanelBorderColor MessageBoxColor 按钮区域边框颜色 已实装
ButtonBorderColor MessageBoxColor 按钮边框颜色 已实装
WndBorderThickness MessageBoxColor 窗口边框宽度 已实装
TitlePanelBorderThickness Thickness 标题区域边框宽度 已实装
MessagePanelBorderThickness Thickness 消息区域边框宽度 已实装
ButtonPanelBorderThickness Thickness 按钮区域边框宽度 已实装
ButtonBorderThickness Thickness 按钮边框宽度 已实装
WindowShowDuration Duration 窗口渐显时间 已实装
WindowShowAnimations List<KeyValuePair<DependencyProperty, AnimationTimeline>> 窗口显示动画 已实装
WindowCloseAnimations List<KeyValuePair<DependencyProperty, AnimationTimeline>> 窗口关闭动画 已实装
CloseIcon BitmapImage 自定义关闭图标 已实装
WarningIcon BitmapImage 自定义警告图标 已实装
ErrorIcon BitmapImage 自定义错误图标 已实装
InfoIcon BitmapImage 自定义信息图标 已实装
QuestionIcon BitmapImage 自定义问题图标 已实装
EnableCloseButton bool 应用窗口关闭按钮 已实装
ButtonStyleList List<Style> 按钮动作样式 已实装
CloseTimer MessageBoxCloseTimer 窗口计时 / 立即关闭 已实装
MessageBox函数 含义 参数 返回值 静态
Show(string, string, MessageBoxButton, MessageBoxImage) 兼容形式调出消息窗口 消息, 标题 (选), 按钮类型 (选), 图标类型 (选) MessageBoxResult
Show(List<object>, string, string, MessageBoxImage) 自定义形式调出消息窗口 按钮列表, 消息, 标题 (选), 图标类型 (选) int
Show(PropertiesSetter, string, string, MessageBoxButton, MessageBoxImage) 兼容形式调出消息窗口, 并使用既有样式 样式, 消息, 标题 (选), 按钮类型 (选), 图标类型 (选) MessageBoxResult
Show(PropertiesSetter, List<object>, string, string, MessageBoxImage) 自定义形式调出消息窗口, 并使用既有样式 样式, 按钮列表, 消息, 标题 (选), 图标类型 (选) int
GetBtnList() 获取按钮列表 List<object>
SetButtonStyle() 设定当前显示的图标类型 void
MessageBoxColor属性 含义 类型
color 颜色值 object
colorType 颜色类型 ColorType
MessageBoxColor函数 含义 参数 返回值 静态
MessageBoxColor(object) 构造函数 十六进制颜色码字符串或者Color类的实例或颜色名字符串
MessageBoxColor(object, ColorType) 构造函数 十六进制颜色码字符串或者Color类的实例或颜色名字符串, ColorType枚举值
GetSolidColorBrush() 输出这个实例颜色实例对应的SolidColorBrush SolidColorBrush
MessageBoxCloseTimer属性 含义 类型
timeSpan 距窗口关闭的时间 TimeSpan
result int 窗口关闭后返回的返回值
MessageBoxCloseTimer函数 含义 参数 返回值 静态
MessageBoxCloseTimer(TimeSpan, int) 构造函数 TimeSpan实例 (距关闭的时间), 窗口关闭后返回的返回值
MessageBoxCloseTimer(int, int) 构造函数 距关闭的秒数, 窗口关闭后返回的返回值
CloseNow() 立即关闭窗口
PropertiesSetter属性 含义
略 (参考MessageBox属性)
PropertiesSetter函数 含义 参数 返回值 静态
PropertiesSetter() 构造函数
PropertiesSetter(PropertiesSetter) 构造函数 一个既有的PropertiesSetter实例
ButtonSpacer属性 含义 类型
length 留白长度 double
ButtonSpacer函数 含义 参数 返回值 静态
ButtonSpacer() 构造函数
ButtonSpacer(double) 构造函数 留白长度
GetLength() 获取留白长度 double
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看