Hallo ich beschäftige mich Grade mit ControlTemplates.
Mein ControlTemplate sieht so aus
<Window.Resources>
<ControlTemplate x:Key="RoundButton" TargetType="{x:Type Button}">
<Grid MouseMove="Ellipse_MouseMove" MouseLeave="Ellipse_MouseLeave">
<Ellipse Width="60" Height="60" >
<Ellipse.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="{TemplateBinding Background}" offset="0.9"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Label Content="{TemplateBinding Content}" Foreground="Black" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Window.Resources>
Und so sieht mein Button aus
<Button Name="stop" Content="Stop" Template="{StaticResource RoundButton}" Grid.Column="2" Grid.Row="2" Background="Red" ></Button>
Mein Problem ist nur das der Background den ich im Button setze nicht übernommen wird.
Ich vermute es liegt daran das Background eine Pinsel bekommt und Color nur eine Farbe erwartet.
Kann mir das jemand weiterhelfen?
Foren Suche und google habe ich schon bemüht aber leider nichts gefunden was mir weiter geholfen hat.
gruß
Hendrik
hast du das property "Background" selber im control als property oder willst du das vom original Button
beim ersteren muss das binding anders aussehen - beim zweiteren muss ich dich enttaeuschen - das geht nicht - du musst dann die farbe selber definieren
Vielleicht mit einem Converter(IValueConverter). Sollte doch für einen SolidColorBrush möglich sein.
Gruß Timo
Hallo,
Vielleicht mit einem Converter(IValueConverter)...
Vielleicht als kurze Ergänzung warum ein Converter notwendig ist: Background ist keine Farbe. Es ist ein Brush und wie Omit schon meinte kann man bei nem SolidColorBrush die Farbe nehmen und als Value vom Converter zurückgeben. Bei anderen Brushes ist dies aber nicht möglich da Brushes nicht zwangsläufig eine Farbe haben müssen. Nen Brush kann auch nen Video anzeigen z.B. - was will man da als Farbe nehmen? 😃
Baka wa shinanakya naoranai.
Mein XING Profil.