C# WPF 弹出窗口:添加换行,动态调整窗口高度
///
// 设置窗口居中
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 著作权归作者所有。请勿转载和采集!