///

/// 该方法用于显示一个自定义的弹出窗口 /// /// 要显示的消息文本 /// 弹出窗口的标题 /// 消息文本的字体大小 /// 消息文本的前景色(颜色) public static void Show(string message, string caption, int fontSize, Brush foregroundColor) { // 创建一个新的窗口对象 var msgBox = new Window();

// 设置窗口居中
msgBox.WindowStartupLocation = WindowStartupLocation.CenterScreen;

// 设置窗口标题
msgBox.Title = caption;

// 设置窗口大小不能改变
msgBox.ResizeMode = ResizeMode.NoResize;

// 设置窗口背景色为白色
msgBox.Background = Brushes.White;

// 设置窗口宽度为400像素
msgBox.Width = 200;

// 设置窗口高度为200像素
msgBox.Height = 200;

// 设置窗口置顶
msgBox.Topmost = true;

// 创建一个新的StackPanel控件
var stackPanel = new StackPanel();

// 设置StackPanel的外边距
stackPanel.Margin = new Thickness(10, 20, 10, 10);

// 将StackPanel添加到窗口的内容中
msgBox.Content = stackPanel;

// 添加TextBlock换行
// 创建一个新的TextBlock控件
var textBlock = new TextBlock();

// 将message字符串按照换行符'\n'分割成字符串数组
string[] messages = message.Split('\n');

// 将字符串数组中的每个元素添加到TextBlock中,每个元素占据一行
foreach (var msg in messages)
{
    // 创建一个新的Run控件,用于显示每行文本
    var run = new Run(msg);

    // 将Run控件添加到TextBlock中
    textBlock.Inlines.Add(run);

    // 添加换行符
    textBlock.Inlines.Add(new LineBreak());
}

// 设置TextBlock的字体大小为参数fontSize
textBlock.FontSize = fontSize;

// 设置TextBlock的前景色为参数foregroundColor
textBlock.Foreground = foregroundColor;

// 将TextBlock添加到StackPanel中
stackPanel.Children.Add(textBlock);

// 创建一个新的Button控件
var button = new Button();

// 设置Button的文本为'OK'
button.Content = 'OK';

// 设置Button的外边距
button.Margin = new Thickness(0, 20, 0, 0);

// 设置Button的宽度为75像素
button.Width = 75;

// 设置Button的高度为25像素
button.Height = 25;

// 设置Button的水平对齐方式为居中
button.HorizontalAlignment = HorizontalAlignment.Center;

// 设置Button的垂直对齐方式为底部
button.VerticalAlignment = VerticalAlignment.Bottom;

// 注册Button的Click事件处理程序,点击时关闭窗口
button.Click += (s, e) => msgBox.Close();

// 将Button添加到StackPanel中
stackPanel.Children.Add(button);

// 显示窗口,直到窗口关闭为止
msgBox.Show();

// 根据TextBlock的高度来调整窗口高度
msgBox.Height = stackPanel.ActualHeight + 50;

}


原文地址: http://www.cveoy.top/t/topic/nyg5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录