目标是重复使用固定的弹窗样式,并提供确认和取消按钮,而弹窗的具体内容则由传参决定。
为了达到目的,使用ContentControl
设置内容,并通过新增ShowDialog方法为确认按钮添加业务逻辑。
效果如图:
绿色框的部分为自定义内容
关键代码
设置ContentControl
<ContentControl Grid.Row="0" Margin="0" x:Name="contentContainer" />
public CustomDialog(UserControl control, string title, Window window = null)
{
InitializeComponent();
Title = title;
//设置内容
contentContainer.Content = control;
}
新增ShowDialog方法
public void ShowDialog(Func<bool> onOKCallback)
{
btnOK.Click += (s1, e1) => {
try
{
var fOK = true;