参考:Catel docs
使用Visual Studio 2013,.NET 4.5.1,Catel 4.4。
我有一个带默认关闭按钮的DataWindow。我想使用MahApps.Metro Flat Button样式设置该按钮的样式。如果我可以直接访问DataWindow Close按钮(我认为它是在运行时创建的),我会在XAML中应用Flat Button样式,但我没有。
在Catel文档中,评论说我们应该指定自己的DataWindowButtonStyle。我可以获得一个创建新的DataWindowButtonStyle的示例,我可以将其基于MahApps.Metro Flat Button样式吗?
如果您有任何疑问或需要更多信息,请与我们联系。
谢谢!
编辑:这是我尝试过的:
<catel:DataWindow.Resources>
<!-- Compile Error: A 'DynamicResourceExtension' cannot be set on the BasedOn property of type 'Style'.
<ResourceDictionary>
<Style x:Key="DataWindowButtonStyle" BasedOn="{DynamicResource MetroFlatButton}" />
</ResourceDictionary>
-->
<!-- This compiles and runs, but doesn't work.
<ResourceDictionary>
<Style x:Key="DataWindowButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow" />
</Style>
</ResourceDictionary>
-->
<!-- This compiles and runs, but doesn't work.
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Catel.MVVM;component/themes/generic.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="DataWindowButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow" />
</Style>
</ResourceDictionary>
-->
<!-- Compiles and runs, but doesn't work. -->
<Style x:Key="DataWindowButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow" />
</Style>
</catel:DataWindow.Resources>
答案 0 :(得分:0)
您可以简单地定义一个新的DataWindowButtonStyle资源,它应该自动应用。
答案 1 :(得分:0)
必须在App.xaml应用程序资源中定义自定义DataWindowButtonStyle。
的App.xaml:
<Application.Resources>
<Style x:Key="DataWindowButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="MinHeight" Value="50"/>
</Style>
</Application.Resources>
我不知道为什么设置背景属性不起作用。但其他财产正在发挥作用。