0

我想创建一个窗口样式的自定义关闭按钮,它依赖于窗口的关闭命令。我写了这样的东西:

<Style x:Key="WindowsGeneralStyle"  TargetType="Window">
   ...
    <Setter Property="Template" >
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Grid>
                     ...
                     <Button x:Name="closebtn" Command={Binding Close} ... />
                </Grid> 
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

但它没有用。这是怎么做的?

4

2 回答 2

1

我解决了问题。我为我们的 ResourceDictionary 创建了一个部分类,并在后面的代码中处理了关闭按钮单击事件:

资源字典 XAML 文件:

    <ResourceDictionary ...  x:Class="MyNameSpace.WindowStyle">
    ...
    <Style x:Key="WindowsGeneralStyle"  TargetType="Window">
            <Setter Property="Template" >
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Window}">
                        <Grid>
                             ...
                             <Button x:Name="closebtn"  Click="CloseBTN_Clicked" ... />
                        </Grid> 
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
</ResourceDictionary>

和后面的代码:

namespace MyNameSpace
{
    public partial class WindowStyle
    {
        private void CloseBTN_Clicked(object sender, RoutedEventArgs e)
        {
            Window.GetWindow(((FrameworkElement)e.Source)).Close();
        }
    }
}

现在,它工作得很好!

于 2012-05-05T05:19:25.367 回答
0

{Binding Close}试图绑定到当前Close的命令,你可能想要类似.DataContext{x:Static ApplicationCommands.Close}

于 2012-05-04T12:57:16.667 回答