level 13
源码:
namespace DlgTest
{
public class Dlg
{
public Dlg() { }
private string title;
private string content;
private RelayCommand<bool> closeCmd;
private Visibility showok = Visibility.Collapsed;
private Visibility showokno = Visibility.Collapsed;
private Visibility showokcancel = Visibility.Collapsed;
public bool BtnOKOryes { get { return true; } }
public bool BtnNoOrCancel { get { return false; } }
public string Title{get{return title;}}
public string Content{get {return content;}}
public static bool? Show(string text, string title, DlgBtn type)
{
var result = false;
Dlg DlgDataContext = new Dlg();
MyDialog myDialog = new MyDialog();
DlgDataContext.content = text;
DlgDataContext.title = title;
if (type == DlgBtn.ok) DlgDataContext.showok = Visibility.Visible;
else if (type == DlgBtn.okcancel) DlgDataContext.showokcancel = Visibility.Visible;
else DlgDataContext.showokno = Visibility.Visible;
DlgDataContext.closeCmd = new RelayCommand<bool>((b) =>
{ result = b;
myDialog.Close(); });
myDialog.DataContext = DlgDataContext;
myDialog.Owner = App.Current.MainWindow;
myDialog.Show();
return result;
}
public ICommand CloseCmd { get { return closeCmd; } }
public Visibility Showok { get { return showok; } }
public Visibility Showokno { get { return showokno; } }
public Visibility Showokcancel { get { return showokcancel; } }
}
public enum DlgBtn
{
ok,
yesno,
okcancel
}
}
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<StackPanel>
<TextBlock Text="{Binding Content}" FontSize="21.333" TextWrapping="Wrap" Margin="18"></TextBlock>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Visibility="{Binding Showok}">
<Button Content="确定" Command="{Binding CloseCmd}" CommandParameter="{Binding BtnOKOryes}" Margin="8,2,40,8" Width="80"/>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Visibility="{Binding Showokcancel}">
<Button Content="确定" Command="{Binding CloseCmd}" CommandParameter="{Binding BtnOKOryes}" Margin="8,2,8,8" Width="80"/>
<Button Content="取消" Command="{Binding CloseCmd}" CommandParameter="{Binding BtnNoOrCancel}" Margin="8,2,30,8" Width="80"/>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Visibility="{Binding Showokno}">
<Button Content="是" Command="{Binding CloseCmd}" CommandParameter="{Binding BtnOKOryes}" Margin="8,2,8,8" Width="80"/>
<Button Content="否" Command="{Binding CloseCmd}" CommandParameter="{Binding BtnNoOrCancel}" Margin="8,2,30,8" Width="80"/>
</StackPanel>
</Grid>
2016年02月22日 12点02分
