/ / wpf Konverter vom Button-Style entfernen - wpf, button, binding, styles, valueconverter

WPF Konverter aus Button-Stil entfernen - WPF, Button, Bindung, Stile, Wertkonverter

Ich verwende Mahapp Metro-Schaltflächen in einem WPF-Projekt. Einige der Standardschaltflächen haben einen Konverter, der im Inhaltspräsentator der ursprünglichen Mahapp-Vorlage definiert ist.

f.e. Quadrat-Taste:

<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}" />

Gibt es eine einfache Möglichkeit, das Quadrat zu ändern, um den ToLowerConverter NICHT zu verwenden, ohne die gesamte Vorlage zu ändern?

Ich habe versucht, das ContentTemplate in einem Stil zu ändern, aber ohne Erfolg:

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

Antworten:

0 für die Antwort № 1

Wechseln ContentTemplate Sie werden nicht weiterhelfen, da dies nur von dem Benutzer verwendet wird, den Sie ersetzen möchten ContentPresenter, aber das funktioniert nur auf einem pro UI-Element Basis aus einer UI-Sammlung, z. Sie könnten dies verwenden, um auf die Single zuzugreifen ContentPresenter definiert in einer Vorlage von a ListBoxItem das hat diese Vorlage angewendet:

ContentPresenter contentPresenter = FindVisualChild(dependencyObject);

Da Ihnen das nichts ausmacht, werde ich den Code für diese Methode nicht anzeigen. Die einzige andere Alternative, die Sie haben, besteht darin, eine neue zu definieren ControlTemplate. Es sollte einfach sein, ein neues zu definieren ControlTemplate wenn Sie Zugriff auf die Standardeinstellung haben ControlTemplate.