Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Frage: ControlTemplate Button
hen.klemp
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

Frage: ControlTemplate Button

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
userid14268
myCSharp.de - Member



Dabei seit:
Beiträge: 1620

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Omit
myCSharp.de - Member

Avatar #avatar-2748.jpg


Dabei seit:
Beiträge: 146

beantworten | zitieren | melden

Vielleicht mit einem Converter(IValueConverter). Sollte doch für einen SolidColorBrush möglich sein.

Gruß Timo
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Omit am .
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

Hallo,
Zitat von Omit
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.
private Nachricht | Beiträge des Benutzers