关闭转义按钮时关闭xceed子窗口

时间:2013-10-20 16:40:15

标签: c# wpf xaml wpftoolkit childwindow

我正在使用xceed wpf Toolkit。 我正在使用ChildWindow。我需要在退出键按下时关闭打开的子窗口。这是代码

<xctk:ChildWindow x:Name="ChildVendorsEdit" IsModal="True" WindowStartupLocation="Center" Caption="Edit" >
//My Content Here
</xctk:ChildWindow>
你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

使用&#34; IsCancel&#34;按钮上的属性。

<Button Content="Discard" Click="ButtonDiscard_OnClick" IsCancel="True"></Button>

IsDefault(输入密钥)相同

答案 1 :(得分:0)

如果您使用的是2.0.0或更高版本,则应将ChildWindow放入WindowContainer并使用PreviewKeyDown事件。

XAML:

<xctk:WindowContainer>
    <xctk:ChildWindow x:Name="ChildVendorsEdit" IsModal="True" WindowStartupLocation="Center" Caption="Edit"                          
                  PreviewKeyDown="ChildVendorsEdit_PreviewKeyDown" >                
    </xctk:ChildWindow>
</xctk:WindowContainer>

代码隐藏:

private void ChildVendorsEdit_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape)
    {
        (sender as Xceed.Wpf.Toolkit.ChildWindow).WindowState = Xceed.Wpf.Toolkit.WindowState.Closed;
    }
}

如果您使用的版本低于2.0.0,则应使用PreviewKeyDown事件:

XAML:

<xctk:ChildWindow x:Name="ChildVendorsEdit" IsModal="True" WindowStartupLocation="Center" Caption="Edit"                          
                  PreviewKeyDown="ChildVendorsEdit_PreviewKeyDown" >            
</xctk:ChildWindow>

代码隐藏:

private void ChildVendorsEdit_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape)
    {
        (sender as Xceed.Wpf.Toolkit.ChildWindow).WindowState = Xceed.Wpf.Toolkit.WindowState.Closed;
    }
}

要在ChildWindow事件处理程序中关闭PreviewKeyDown,您有两个选择:

  • 您可以将WindowState设置为Closed
  • 或者您可以调用Close方法。