Button mouseover color nur auf Textfläsche beziehen

Guten Tag,

das name ist vielleicht irgendwie falsch gewählt, leider ist mir auch nichts besseres eingefallen. Ich hab folgendes Problem, ich habe einen transparenten Button (man sieht nur die Schrift), wenn ich nun mit der Maus drüber ziehe wird die komplette Button größe ausgegraut also makiert im typischen Windows Style. Ich würde es jetzt gerne so haben, das wirklich nur die Schrift selbst ausgegraut wird und kein komplettes Viereck. Funktioniert das irgendwie? Wäre nett wenn ihr mir helfen könntet. Finde momentan leider nichts dazu.

Konnte das Problem selbst Lösen. Der Button hat Events: MouseOver und MouseLeave. MouseOverBack Color auf Transparent stellen und in der Over bzw Leave funktion die ForColor entsprechend einstellen.

Könntest du bitte den XAML Code posten der dir zur Lösung des Problems geholfen hat?

Hi,

ich weiß nicht genau worauf es euch beiden ankommt, aber ich glaube das grundlegende Gerüst der Lösung könnte so aussehen:

[XML]

</Grid>
[/XML]

Und Code behind:

[CSHARP]namespace ButtonForegroundSetzen
{
///


/// Interaktionslogik für MainWindow.xaml
///

public partial class MainWindow : Window
{
Brush CurrentColor;

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_MouseEnter_1(object sender, MouseEventArgs e)
    {
        CurrentColor = MyButton.Foreground;

        MyButton.Foreground = new SolidColorBrush(Colors.Azure);
    }

    private void Button_MouseLeave_1(object sender, MouseEventArgs e)
    {
        MyButton.Foreground = CurrentColor;
    }
}

}[/CSHARP]

Kleiner Hinweis: Wenn du wirklich nur per MouseOver bzw. MouseLeave die Vordergrundfarbe ändern willst, empfiehlt sich auch der Einsatz von Triggern in Styles (wie hier erklärt: Einsatz von Triggern). Dadurch musst du nur jedem Button den gewünschten Style zuweisen und der Button reagiert wie durch die Trigger eingestellt.

Da du Styles auch Global setzen kannst, kannst du alle Buttons mit einer Anweisung gleich Stylen. Dadurch gibt es nur eine zentrale Stelle an welcher zum Beispiel die Farbe geändert werden muss wenn du eine andere wünscht.