我想在窗口样式中创建一个自定义关闭按钮,它依赖于窗口的关闭命令。 我写了这样的话:
<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>
但它不起作用。这是怎么回事?
答案 0 :(得分:1)
我解决了问题。我为ResourceDictionary创建了一个分部类,在后面的代码中我处理了关闭按钮单击事件:
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();
}
}
}
现在,它运作得很好!
答案 1 :(得分:0)
{Binding Close}
尝试绑定到当前Close
中的DataContext
命令,您可能想要{x:Static ApplicationCommands.Close}
之类的内容。