Witam szanowni forumowicze.
Na samym początku zrobiłem standardowo jak dla buttonow z Form.
button.MouseEnter += new MouseEventHandler(PrzyciskiMouseEnter);
private void PrzyciskiMouseEnter(object sender, EventArgs e)
{
(sender as Button).Background = Brushes.Black;
}
Bardzo się zdziwiłem widząc, że owy kod nie działa tutaj, gdyż jak przejeżdżam dalej w przycisk myszką, to zmienia na kolor niebieski, standardowy dla przycisków najechanych.
A więc napisałem klasę dziedziczącą po Button i dalej:
protected override void OnMouseEnter(MouseEventArgs e)
{
base.OnMouseEnter(e);
(e.Source as Button).Background = Brushes.Black;
}
Działo się tak jak wyżej. To dopisałem coś takiego.
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
(e.Source as Button).Background = Brushes.Black;
}
Lecz ta metoda tworzy błąd Object reference not set to an instance of an object. po wjechaniu na button, jakby z innej jeszcze metody coś chciało dostać się do buttona i go przekolorować.
Na pewno mieliście ten sam problem i go rozwiązaliście także byłbym szczęśliwy gdyby ktoś potrafił mnie naprowadzić na rozwiązanie tego problemu. Najdziwniejsze jest to, że dla przycisku z Form działa bez zarzutu.
//edit
Rozwiązanie jest najprawdopodobniej tutaj:
http://www.netframeworkdev.com/windows-presentation-foundation-wpf/changing-a-button-color-on-mouseenter-in-wpf-87283.shtml
ale niestety nie umiem przełożyć go z XAML do C#