</Grid>
</controls:BaseWindow>
后台代码:
public partial class OkCanleWindow : BaseWindow
{
public OkCanleWindow()
{
InitializeComponent();
this.Closed += (s, e) =>
{
if (result == CustomDialogResult.None)
{
result = CustomDialogResult.Cancel;
}
};
}
private System.Windows.Controls.Control control;
CustomDialogResult result;
public CustomDialogResult ShowDialog(string title, MsgBoxBtn btnState, Control uc, out object dataContext)
{
#region 设置控件
if (btnState == MsgBoxBtn.Ok) //如果为OK状态
{
Grid.SetColumnSpan(okBtn, 2); //设置OK按钮跨两列
okBtn.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; //设置OK按钮居中对齐
canleBtn.Visibility = System.Windows.Visibility.Collapsed; //设置Cancel 按钮隐藏;
if (uc != null)
{
control = uc;
Grid.SetRow(uc, 0); //设置控件所在Grid 的行
Grid.SetColumnSpan(uc, 2); //设置控件所在Grid 的列
this.Width = uc.Width; //设置窗体宽度
this.Height = uc.Height + grid.RowDefinitions[1].Height.Value + 35; //设置窗体宽度 高度
grid.Children.Add(uc); //加入控件
}
}
if (btnState == MsgBoxBtn.None) //如果为None 既没有OK 也没有 Cancle
{
grid.RowDefinitions.RemoveAt(1);
okBtn.Visibility = System.Windows.Visibility.Collapsed;
canleBtn.Visibility = System.Windows.Visibility.Hidden;
if(uc !=null)
{
control = uc;
Grid.SetRow(uc, 0); //设置控件所在Grid 的行
Grid.SetColumnSpan(uc, 2); //设置控件所在Grid 的列
this.Width = uc.Width; //设置窗体宽度
this.Height = uc.Height + 35;
grid.Children.Add(uc); //加入控件