取消按钮关闭窗口

时间:2014-05-09 16:34:33

标签: c# wpf

感谢您阅读我的帖子。

我正在尝试插入取消按钮,该按钮基本上为窗口执行X按钮。

以下是How would I make a cancel button work like the "X" button?的代码。我有完全相同的情况

public partial class Dialog : Window
{
    .
    .
    .

    private void Window_Closing(object sender, CancelEventArgs e)
    { 
        e.Cancel() = true; //Works as expected
    }

    private void btnCancel_Click(object sender, RoutedEventArgs e)
    {
        e.Cancel() = true; //Compile error
    }
}

这是xaml:

<Window x:Class="ExperimentSettingsViewer.TemplateName"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Template Name"
        Height="120"
        Width="300"
        WindowStartupLocation="CenterOwner">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/ExperimentSettingsViewer;component/Button.xaml" />
                <ResourceDictionary Source="/ExperimentSettingsViewer;component/Window.xaml" />
                <ResourceDictionary Source="/ExperimentSettingsViewer;component/Border.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <TextBox Name="tbName"
                     Margin="3"
                     Text="{Binding Path=NewName}" />
            <StackPanel Orientation="Horizontal" HorizontalAlignment="right">
                <Button Name="btnOK"
                    Content="OK"
                    Width="75"
                    Height="30"
                    HorizontalAlignment="Right"
                    Margin="3"
                    Click="btnOK_Click" />
                <Button Name="btnCancel"
                    Content="Cancel"
                    Width="75"
                    Height="30"
                    HorizontalAlignment="Right"
                    Margin="3"
                    Click="btnCancel_Click" IsCancel="True" />
            </StackPanel>

        </StackPanel>
    </Grid>
</Window>

但是,我遵循该线程中的解决方案,并将buttom的IsCancel设置为true,但仍然没有可用于我的按钮的Cancel()方法。

我想知道我错过了什么吗?或者如何让我的取消按钮像X按钮一样工作。非常感谢。

1 个答案:

答案 0 :(得分:4)

Button.IsCancel属性不会自动关闭您的窗口。它所做的就是让你使用Escape to&#34;按&#34;按钮。您仍然需要在点击事件处理程序中调用Close()才能关闭窗口。

因此,该事件没有Cancel属性。如果您不想关闭窗口,请不要拨打Close()