Amt-Coder Ответов: 0

Триггер Ismouseover не работает при использовании showdialog и окна без полей


У меня их два Window для приложения. Один из них MainWindow а другой - для настроек. SettingsWindow открывается с помощью ShowDialog и установив его Owner к MainWindow при нажатии кнопки настройки.

На `установочном окне` У меня есть кнопка в самом низу окна, и она меняет цвет на красный когда IsMouseOver является True и синий для False Но это не меняется, когда курсор находится над главным окном. Изображение ниже, чтобы быть ясным. Как я могу решить эту проблему?

ДЕЛО: Курсор находится вне SettingsWindow, но он сохраняет красный цвет, никаких изменений.

Что я уже пробовал:

<Window x:Class="AltoSS.SettingsWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="SettingsWindow"
            Height="150"
            Width="360"
            WindowStyle="None"
            AllowsTransparency="True"
            WindowStartupLocation="CenterOwner">

      <!-- Other control codes-->
      <Button Grid.Row="2" Content="KAYDET" 
              FontSize="15"
              FontWeight="Bold"
              BorderBrush="Gray"
              BorderThickness="0,2,0,2">
        <Button.Style>
          <Style TargetType="Button">
            <Setter Property="Background" Value="Blue"/>
            <Setter Property="Template">
              <Setter.Value>
                <ControlTemplate TargetType="Button">
                  <Border removed="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="Center"            VerticalAlignment="Center"/>
                  </Border>
                  <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                      <Setter Property="Background" Value="Red"/>
                      <Setter Property="Foreground" Value="White"/>
                    </Trigger>
                  </ControlTemplate.Triggers>
                </ControlTemplate>
              </Setter.Value>
            </Setter>
          </Style>
        </Button.Style>
      </Button>
    </Window>


private void btnOpenSettings_Click(object sender, RoutedEventArgs e)
{
   SettingWindow sw = new SettingWindow();
   sw.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
   sw.Owner = this;
   sw.ShowDialog();
}

0 Ответов