我正在使用最新的MahApps WPF工具包,我在将我的样式应用于其控件(准确地说是PasswordBox)时遇到了一些问题。我已经在一个单独的.xaml文件中定义了这些样式,并将其包含在App.xaml文件中,以便在所有.xaml文件中都能看到。但是,当我在一个键下使用指定的样式时,MahApps ClearTextButton会拒绝出现在控件上。
这是我的样式:
这是我的样式:
<Style x:Key="DefaultPasswordBoxStyle"
TargetType="{x:Type PasswordBox}"
BasedOn="{StaticResource ResourceKey={x:Type PasswordBox}}">
<Setter Property="HorizontalContentAlignment">
<Setter.Value>Center</Setter.Value>
</Setter>
<Setter Property="FontSize">
<Setter.Value>16</Setter.Value>
</Setter>
</Style>
它在单独的.xaml文件中的使用方法:
<PasswordBox Margin="{StaticResource ControlMargin}"
controls:TextBoxHelper.ClearTextButton="True"
Style="{StaticResource DefaultPasswordBoxStyle}"
Width="200" />
如果我删除样式属性,按钮会显示为预期的样子,但我也想能够应用自己的样式。在XAML设计器中实际上是可见的,这很有趣。我也尝试了DynamicResource,但结果相同。
BasedOn
值指向了一个TargetType,而不是一个Key,我认为你实际上要找的是BasedOn = "{StaticResource MetroPasswordBox}"
,至少从查看包含PART_ClearText按钮的默认模板来看。 - Chris W.