wpf 自定义messagebox
时间: 2023-07-27 18:06:08 浏览: 81
WPF自定义MessageBox
5星 · 资源好评率100%
自定义MessageBox可以通过创建一个新的窗口来实现。以下是一个简单的WPF自定义MessageBox的示例:
1. 创建一个新的WPF窗口,例如CustomMessageBox.xaml。
2. 在CustomMessageBox.xaml中添加一个TextBlock,用于显示消息文本。
3. 添加两个或更多个Button,每个Button代表一个选项,例如"OK"和"Cancel"。
4. 在CustomMessageBox.xaml.cs中添加一个静态方法,该方法将消息文本和按钮选项作为参数,并创建和显示CustomMessageBox。
以下是示例代码:
CustomMessageBox.xaml:
```xml
<Window x:Class="WpfApp1.CustomMessageBox"
...
WindowStyle="None" ResizeMode="NoResize" ShowInTaskbar="False" Topmost="True">
<Grid>
<TextBlock x:Name="MessageTextBlock" TextWrapping="Wrap" Margin="10"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="10">
<Button x:Name="OKButton" Content="OK" Margin="5" Width="75" Click="OKButton_Click"/>
<Button x:Name="CancelButton" Content="Cancel" Margin="5" Width="75" Click="CancelButton_Click"/>
</StackPanel>
</Grid>
</Window>
```
CustomMessageBox.xaml.cs:
```c#
public partial class CustomMessageBox : Window
{
public CustomMessageBox()
{
InitializeComponent();
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
public static bool? Show(string message, string okButton = "OK", string cancelButton = "Cancel")
{
CustomMessageBox customMessageBox = new CustomMessageBox();
customMessageBox.MessageTextBlock.Text = message;
customMessageBox.OKButton.Content = okButton;
customMessageBox.CancelButton.Content = cancelButton;
return customMessageBox.ShowDialog();
}
}
```
使用方法:
```c#
bool? result = CustomMessageBox.Show("Are you sure you want to delete this item?", "Yes", "No");
if (result == true)
{
// delete item
}
else
{
// do nothing
}
```
这样就可以创建一个自定义的MessageBox,可以根据实际需求修改窗口的外观和行为。
阅读全文