我在 wpf 项目中使用 Mahapp Metro 按钮。某些标准按钮在原始 mahapp 模板的内容演示器中定义了转换器。
F.E. 方形按钮:
<ContentPresenter x:Name="contentPresenter"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content, Converter={StaticResource ToLowerConverter}}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
OpacityMask="{x:Null}" />
有没有一种简单的方法可以在不更改整个模板的情况下将方形按钮更改为不使用 ToLowerConverter?
我尝试更改样式中的内容模板,但没有成功:
<Style x:Key="MyFlyoverButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource SquareButtonStyle}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="{TemplateBinding VerticalAlignment}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
更改ContentTemplate
对您没有帮助,因为它只是由您要替换的人使用。您可以使用如下所示的内容来访问ContentPresenter
,但这仅适用于 UI 集合中的每个 UI 元素,例如。您可以使用它从应用了模板的ListBoxItem
访问模板中定义的单个ContentPresenter
:
ContentPresenter contentPresenter = FindVisualChild(dependencyObject);
由于这对您没有用,因此我不会费心显示该方法的代码。您唯一的其他选择是 定义一个新的ControlTemplate
.如果您有权访问默认ControlTemplate
,定义新ControlTemplate
应该是一件简单的事情。