C# 如何使WPF样式可继承到派生类?
在我们的WPF应用程序中,我们有一个带有C# 如何使WPF样式可继承到派生类?,c#,wpf,xaml,C#,Wpf,Xaml,在我们的WPF应用程序中,我们有一个带有TargetType={x:Type ContextMenu}的全局样式。我创建了一个从ContextMenu派生的MyContextMenu,但现在默认样式不适用 如何告诉WPF我希望MyContextMenu从ContextMenu继承默认样式?希望我可以在自己的控制范围内(通过静态ctor元数据覆盖或其他方式)完成这项工作,而不必在任何xaml中乱来。如果应用程序中定义了这样的样式: <Style TargetType="{x:Type Con
TargetType={x:Type ContextMenu}
的全局样式。我创建了一个从ContextMenu派生的MyContextMenu,但现在默认样式不适用
如何告诉WPF我希望MyContextMenu从ContextMenu继承默认样式?希望我可以在自己的控制范围内(通过静态ctor元数据覆盖或其他方式)完成这项工作,而不必在任何xaml中乱来。如果应用程序中定义了这样的样式:
<Style TargetType="{x:Type ContextMenu}" ...
为了补充code裸体的优秀建议,我尝试在
MyContextMenu
的XAML部分指定Style
:
<ContextMenu x:Class=LocalProject.MyContextMenu"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:AdelSoft_WS_FRA_Test.Composants"
mc:Ignorable="d"
Style="{DynamicResource {x:Type ContextMenu}}">
如果您使用样式名称。最后一大块代码正是我要找的。谢谢裸体先生!这是其中的一个例子,我希望我能投11次赞成票。谢谢。很好的技巧,所以我们可以从显式风格中继承隐式风格。谷歌搜索就像一只疯狗<代码>设置资源参考用于救援!!谢谢。在
MyContextMenu
的XAML插入中使用DynamicResource
和在隐式样式定义中使用StaticResource
有什么原因吗?我在XAML插入中尝试了这两种方法,两种方法似乎都有效。
<local:MyContextMenu Style="{DynamicResource {x:Type ContextMenu}}" ...
public MyContextMenu() {
this.SetResourceReference(StyleProperty, typeof(ContextMenu));
}
<ContextMenu x:Class=LocalProject.MyContextMenu"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:AdelSoft_WS_FRA_Test.Composants"
mc:Ignorable="d"
Style="{DynamicResource {x:Type ContextMenu}}">
Style="{StaticResource ContextMenuStyleName}">