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 を使用しないように squarebutton を変更できる簡単な方法はありますか?

スタイルで 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も役に立ちません。これは、置き換えたい によって使用されているだけだからです。次のようなものを使用して にアクセスできますが、これは UI コレクションのUI 要素ごとContentPresenterにのみ機能します。これを使用して、そのテンプレートが適用された からテンプレートで定義された単一の にアクセスできます。ContentPresenterListBoxItem

ContentPresenter contentPresenter = FindVisualChild(dependencyObject);

役に立たないので、わざわざそのメソッドのコードを示すことはしません。あなたが持っている唯一の他の選択肢は、 new を定義することControlTemplateです。ControlTemplate default にアクセスできる場合ControlTemplate、 new を定義するのは簡単なことです。

于 2013-11-04T14:04:28.177 に答える