So habe ich einen Stil, unten, den ich auf mehrere Schaltflächen in meinem Formular (WPF) anwenden möchte. Aber jede Schaltfläche muss eine andere Beschriftung haben, und ich kann nicht den gleichen Stil auf jede anwenden, ohne für jede einzelne + Kopieren + Einfügen + Umbenennen zu kopieren (und den Inhalt im Textblock zu setzen).Wie definiere ich einen benutzerdefinierten Stil für eine Schaltfläche, aber unterschiedliche Text-/Inhaltsanzeige für jede Schaltfläche?
XAML in App.xaml
<Style x:Key="RunReportButton"
TargetType="{x:Type Button}"
BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid Background="#EEB4B4">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBorder"
Storyboard.TargetProperty="Color"
To="#d6a2a2"
Duration="0:0:00.0" />
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBorder"
Storyboard.TargetProperty="Color"
To="#d6a2a2"
Duration="0:0:00.0" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border>
<Border.Background>
<SolidColorBrush x:Name="ButtonBorder"
Color="Transparent" />
</Border.Background>
</Border>
<TextBlock
FontFamily="Open Sans"
FontSize="16"
FontWeight="SemiBold"
Foreground="#CD3333"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="5,5,5,5"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
in meiner Form Bindung:
<Button Style="{StaticResource RunReportButton}"
Margin="0,20"/>
Verwenden Sie 'ContentPresenter' anstelle von' TextBlock' in der Vorlage und legen Sie 'FontFamily' usw. über Stil-Setter fest – ASh