我的App.xaml中有以下Style
:
<Style x:Key="BrowseBtn" TargetType="Button">
<Setter Property="Content">
<Setter.Value>
<Image Source="pack://application:,,,/Resources/BrowseIcon.png" />
</Setter.Value>
</Setter>
</Style>
我在这样的Window
中使用这种风格:
<Button x:Name="btnBrowseCampaigns" Grid.Row="0" Style="{StaticResource BrowseBtn}" />
<Button x:Name="btnBrowseDatabase" Grid.Row="1" Style="{StaticResource BrowseBtn}" />
正如您所看到的,两个按钮之间没有明显的区别,但在设计器中(以及在运行时),这些按钮中只有一个显示图标。这是一个错误还是什么?
答案 0 :(得分:1)
尝试样式集x:Shared="False"
,如下所示:
<Window.Resources>
<Style x:Key="BrowseBtn"
x:Shared="True"
TargetType="{x:Type Button}">
<Setter Property="Content">
<Setter.Value>
<Image Source="pack://application:,,,/BrowseIcon.jpg" />
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
默认情况下x:Shared="True"
时,一个Style对所有人都是通用的 - 在这种情况下,系统会对副本Content
发誓。当x:Shared="False"
何时为每个元素创建它的请求时的样式。引自MSDN
:
设置为 false 时,修改WPF资源检索行为,以便对属性资源的请求为每个请求创建
new instance
,而不是为所有请求共享相同的实例。
有关详细信息,请参阅: