Ich habe einen Stil für eine GlassButton. Das Problem ist, dass die Farbverläufe im Stil erstellt werden und die Farben in den Farbverläufen eingestellt werden. Jetzt habe ich einen Rahmen für einen Knopf, den ich mag, aber ich brauche verschiedene Knöpfe, um verschiedene Farben zu haben. Gibt es eine Möglichkeit, dass ich eine oder mehrere der Farbeigenschaften des Stils "freilegen" kann, um sie in meinen Button-Implementierungen zu überschreiben? Stil unten:WPF - Override Stil Farben, Best Practice
Und wenn nicht, was ist dann die beste Vorgehensweise, um so etwas zu tun? Ich möchte nicht für jede Farbe verschiedene Stile erstellen müssen, z. „GlassButtonBlue, GlassButtonGreen, GlassButtonRed“ - scheint übertrieben ...
<Style x:Key="GlassButton" TargetType="{x:Type Button}">
<Setter Property="FontSize" Value="42" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="ButtonBorder"
CornerRadius="25,25,25,25"
BorderThickness="4,4,4,4"
Background="CadetBlue"
BorderBrush="#99FFFFFF"
RenderTransformOrigin="0.5,0.5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="2.6*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" CornerRadius="23,23,0,0">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop x:Name="test" Color="#08FFFFFF" Offset="0"/>
<GradientStop Color="#88FFFFFF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
</Border>
<ContentPresenter x:Name="ButtonContentPresenter"
VerticalAlignment="Center"
Grid.RowSpan="2"
HorizontalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="RenderTransform" TargetName="ButtonBorder">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="0.9" ScaleY="0.9"/>
</TransformGroup>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Danke ... Ich schaute kurz, aber da es Code beinhaltet, glaube ich nicht, dass ich gerade Zeit habe ... werde später am Wochenende zurückkommen ... – LSTayon