【发布时间】:2019-06-09 08:54:34
【问题描述】:
在我的 WPF 应用程序中,我遇到了一种奇怪的行为,即按钮在运行时会丢失样式。
当另一个包含具有相同样式的按钮的用户控件被加载时,按钮会放弃该样式。
这是 App.xaml 中的样式定义:
<Style x:Key="SaveButton" TargetType="telerik:RadButton">
<Setter Property="Margin" Value="5"/>
<Setter Property="Content">
<Setter.Value>
<StackPanel Orientation="Horizontal">
<TextBlock Margin="5" Text="Save"/>
<Image Source="Resources\icons\save.png" Margin="5"
Height="16" Width="16"></Image>
</StackPanel>
</Setter.Value>
</Setter>
</Style>
带有带有 SaveButton 样式的按钮的窗口已正确加载。但是从这个窗口中,当另一个用户控件加载一个带有相同样式的 SaveButton 按钮时,用户控件按钮显示正确,但窗口上的按钮变成完全空白(没有边距,没有图像,没有文本)。
感谢您提供这方面的任何帮助。
【问题讨论】:
-
尝试将PNG的构建动作设置为Resource
-
@BionicCode 构建操作已设置为资源。这不是问题,因为没有样式属性生效。而且,它完美地出现在初始控件中。
-
抱歉,您是否尝试在
Style上设置x:Shared="False"?内容 (Image) 无法共享,因为它被明确指定为Control的内容。要在没有x:Shared="False"的情况下执行此操作,请覆盖Button的模板。 -
@BionicCode 我找不到这样的属性(只有 x:Key、x:Name、x:UID、x:FieldModifier 存在)。此外,根据您的建议,我完全从样式中删除了图像,但它仍然给我带来了同样的问题。
-
@BionicCode 感谢您的帮助。如果您发布答案而不是将其放在评论中,那就太好了。我会将其标记为答案。