У меня есть следующий код для динамического создания и добавления кнопки на панель:
StackPanel topPanel=...;
Button button=new Button();
button.Content="New Button "+topPanel.Children.Count;
// Set button background to a red/yellow linear gradient
// Create a default background brush
var bgBrush=new LinearGradientBrush(new GradientStopCollection(
new GradientStop[] {new GradientStop(Color.FromRgb(255,255,200),0.5),
new GradientStop(Color.FromRgb(255,200,200),0.5)}));
// Create a more intense mouse over background brush
var bgMouseOverBrush=new LinearGradientBrush(new GradientStopCollection(
new GradientStop[] {new GradientStop(Color.FromRgb(255,255,100),0.5),
new GradientStop(Color.FromRgb(255,100,100),0.5)}));
// Set the button's background
button.Background=bgBrush;
// Dynamically, add the button to the panel
topPanel.Children.Add(button);
Проблема в том, что, когда я перемещаю курсор мыши над кнопкой, он возвращается к своему предыдущему голубому фону. Теперь я прочитал, что мне нужен триггер при наведении курсора, но я понятия не имею, как сделать это программно только для этой кнопки, отдельно. По сути, я хочу, чтобы его фон изменился на bgMouseOverBrush
, когда курсор мыши находится над ним, и обратно на bgBrush
, когда его нет.