Почему цвет фона кнопки внутри всплывающего окна не меняется при срабатывании IsMouseOver?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему цвет фона кнопки внутри всплывающего окна не меняется при срабатывании IsMouseOver?

Сообщение Anonymous »

Я создаю пользовательские кнопки внутри всплывающего окна и установил стиль с триггером для изменения фона кнопки при наведении на нее курсора мыши IsMouseOver. Однако, несмотря на стиль, содержащий триггер смены фона, кнопка не меняет свой цвет при наведении на нее курсора мыши. Я подозреваю, что всплывающее окно может перехватывать события мыши и не передавать их кнопке.
Я установил для параметра AllowsTransparency значение true для всплывающего окна, но это не решило проблему. проблема. Мне нужно, чтобы кнопки внутри всплывающего окна правильно реагировали на событие IsMouseOver и меняли цвет фона.
Минимальный воспроизводимый пример:
public static class ButtonStyles
{
public static Style CreateCustomButtonStyle()
{
Style buttonStyle = new Style(typeof(System.Windows.Controls.Button));
buttonStyle.Setters.Add(new Setter(System.Windows.Controls.Button.BackgroundProperty, new SolidColorBrush(System.Windows.Media.Color.FromRgb(51, 51, 51))));
buttonStyle.Setters.Add(new Setter(System.Windows.Controls.Button.ForegroundProperty, new SolidColorBrush(System.Windows.Media.Color.FromRgb(128, 0, 255))));
buttonStyle.Setters.Add(new Setter(System.Windows.Controls.Button.BorderThicknessProperty, new Thickness(0)));
buttonStyle.Setters.Add(new Setter(System.Windows.Controls.Button.FontFamilyProperty, new System.Windows.Media.FontFamily("Arial Black")));

buttonStyle.Triggers.Add(new Trigger
{
Property = System.Windows.Controls.Button.IsMouseOverProperty,
Value = true,
Setters =
{
new Setter(System.Windows.Controls.Button.BackgroundProperty, new SolidColorBrush(System.Windows.Media.Color.FromRgb(0, 0, 0)))
}
});

return buttonStyle;
}
}

private void ShowContextMenu()
{
if (contextMenuPopup != null)
{
contextMenuPopup.IsOpen = false;
}

contextMenuPopup = new Popup
{
PlacementTarget = row,
Placement = PlacementMode.MousePoint,
StaysOpen = false,
AllowsTransparency = true,
Child = new StackPanel
{
Background = new SolidColorBrush(System.Windows.Media.Color.FromRgb(51, 51, 51)),
Width = 200,
Children =
{
CreateContextButton("TEST1", () => TEST1_Click()),
CreateContextButton("TEST2", () => TEST2_Click()),
CreateContextButton("TEST3", () => TEST3_Click()),
CreateContextButton("TEST4", () => TEST4_Click()),
CreateContextButton("TEST5", () => TEST5_Click())
}
}
};

contextMenuPopup.IsOpen = true;
}

private System.Windows.Controls.Button CreateContextButton(string content, Action clickAction)
{
System.Windows.Controls.Button button = new System.Windows.Controls.Button
{
Content = content,
Style = ButtonStyles.CreateCustomButtonStyle(),
Width = 200,
Height = 25
};
button.Click += (sender, e) => clickAction();
return button;
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ismouseove
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Android Studio пользовательский цвет кнопки не меняется, в то время как форма меняется
    Anonymous » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Цвет фона кнопки не меняется в среде градиента.
    Anonymous » » в форуме CSS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Изменение размера ColumnDefinition при использовании элемента IsMouseOver
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Изменение размера ColumnDefinition при использовании элемента IsMouseOver
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Изменение размера ColumnDefinition при использовании элемента IsMouseOver
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»