C# WPF样式可以';不能在多个控件上工作
我在控件上使用wpf样式,这样我就可以同时在多个控件上使用一种样式。它通常是有效的。例如,我制作了一个saveButtonStyle,并将其应用于应用程序上的每个save按钮。但它在菜单项上不起作用。 我为我的菜单项制作了一个样式,在这些项旁边有一个图标。 这是它的一个屏幕截图。 您可以看到Datagrid有一个ContextMenu,其中有多个菜单项。在这种情况下,请注意设置警报。它有一个图标。此设置报警菜单项也位于此项旁边的另一个菜单datagrid中。当我点击那个 看起来也一样 但问题是,当我右键单击返回到另一个数据网格时,图标不见了,不会再回来。这是屏幕截图 这是我做的款式C# WPF样式可以';不能在多个控件上工作,c#,wpf,xaml,styles,app.xaml,C#,Wpf,Xaml,Styles,App.xaml,我在控件上使用wpf样式,这样我就可以同时在多个控件上使用一种样式。它通常是有效的。例如,我制作了一个saveButtonStyle,并将其应用于应用程序上的每个save按钮。但它在菜单项上不起作用。 我为我的菜单项制作了一个样式,在这些项旁边有一个图标。 这是它的一个屏幕截图。 您可以看到Datagrid有一个ContextMenu,其中有多个菜单项。在这种情况下,请注意设置警报。它有一个图标。此设置报警菜单项也位于此项旁边的另一个菜单datagrid中。当我点击那个 看起来也一样 但问题
<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}">
<Setter Property="Icon">
<Setter.Value>
<Image Source="Content/AlertIcon.png" Width="20" Height="20" />
</Setter.Value>
</Setter>
</Style>
下面是我如何将它应用到我的控件中
<MenuItem x:Name="customerContextMenuSetAlarm" Header="SetAlarm" Style="{StaticResource menuItemAlert}" Click="customerContextMenuSetAlarm_Click"/>
你知道为什么会这样吗?style
menuiteAlert
只创建一个Image
实例,并且只能在一个地方显示它。要克服这一问题,请为该图像创建单独的非共享资源
<Image x:Key="AlertIcon" x:Shared="False" Source="Content/AlertIcon.png" Width="20" Height="20" />
<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}">
<Setter Property="Icon" Value="{StaticResource AlertIcon}"/>
</Style>
stylemenuiteAlert
只创建一个图像的实例,并且只能在一个位置显示它。要克服这一问题,请为该图像创建单独的非共享资源
<Image x:Key="AlertIcon" x:Shared="False" Source="Content/AlertIcon.png" Width="20" Height="20" />
<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}">
<Setter Property="Icon" Value="{StaticResource AlertIcon}"/>
</Style>
我甚至尝试使用DynamicSource应用样式。它不起作用我甚至尝试了DynamicSource来应用样式。这不管用哇,这是快速和正确的。谢谢现在说得通了。哇,这很快就正确了。谢谢现在有道理了。