自定义极简主义WPF C# Dialog
wpf吧
全部回复
仅看楼主
level 13
luwq168 楼主
2016年02月22日 12点02分 1
level 13
luwq168 楼主
源码:
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分 2
level 13
luwq168 楼主
Dlg.Show("用户名或密码错误!", "错误提示", DlgBtn.ok);
2016年02月22日 12点02分 3
level 13

2016年02月22日 22点02分 4
level 13
luwq168 楼主
如果多点回复,我给个实用点的。可惜人太少。
2016年02月23日 09点02分 5
level 8
WPF就做这些能有什么软用
2016年05月26日 05点05分 6
1