0

我在 wpf 项目中使用 Mahapp Metro 按钮。一些标准按钮在原始 mahapp 模板的 contentpresenter 中定义了转换器。

fe方形按钮:

<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?

我尝试更改 ContentTemplate 的样式,但没有成功:

<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>
4

1 回答 1

0

更改 对ContentTemplate您没有帮助,因为您要替换的只是使用它。您可以使用类似以下的内容来访问 a ContentPresenter,但这仅适用于 UI 集合中的每个 UI 元素,例如。您可以使用它ContentPresenter从应用了该模板的模板中访问模板中定义的单个ListBoxItem

ContentPresenter contentPresenter = FindVisualChild(dependencyObject);

因为这对你没有用,所以我不会费心展示该方法的代码。您唯一的其他选择是定义一个新的ControlTemplate. ControlTemplate 如果您可以访问默认值,那么ControlTemplate定义一个新的应该是一件简单的事情。

于 2013-11-04T14:04:28.177 回答