我正在读一本书
在用户单击按钮后,您可以手动设置DialogResult,而不是将按钮指定为接受按钮(通过将IsDefault设置为true).单击该按钮会自动将窗口的DialogResult设置为true.同样,您可以将按钮指定为取消按钮(通过将IsCancel设置为true),在这种情况下单击它会将DialogResult设置为Cancel.
这是MainWindow:
<Window x:Class="WpfApplicationWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Width="400" Height="400">
<StackPanel>
<Button Name="BtnShowDialogStatus" Click="BtnShowDialogStatus_Click">DIALOG RESULT</Button>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
点击事件代码:
private void BtnShowDialogStatus_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(new NewWindow().ShowDialog().ToString());
}
Run Code Online (Sandbox Code Playgroud)
这是我在点击事件中打开的对话框:
<Window x:Class="WpfApplicationWPF.NewWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="NewWindow" Height="300" Width="300">
<StackPanel>
<Button Name="BtnDEfault" IsDefault="True" Click="BtnDEfault_Click">DEFAULT BUTTON</Button>
<Button Name="BtnCancel" IsCancel="True" Click="BtnCancel_Click">CANCEL BUTTON</Button>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是它的代码:
private void BtnDEfault_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void BtnCancel_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
我可以看到它只返回DialogResult为假,无论我点击默认或取消按钮.
IsDefault将按钮绑定到Enter键,以便按Enter键将触发Click事件.这并不意味着Yes按钮将为DialogResult返回true.
请参阅链接.它将为您清理一些事情
http://blog.wpfwonderland.com/2010/03/22/getting-a-dialogresult-from-a-wpf-window/
http://www.wpftutorial.net/Dialogs.html
希望能帮助到你...
将您的代码更改为
private void BtnDEfault_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
this.Close();
}
private void BtnCancel_Click(object sender, RoutedEventArgs e)
{
DialogResult = false;
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
29265 次 |
| 最近记录: |