如何设置不活动窗口的样式?

问题描述 投票:2回答:4

如果窗口不是当前活动窗口,我希望背景更改为灰色。我试过这个:

<mm:MetroWindow.Style>
    <Style TargetType="{x:Type mm:MetroWindow}">
        <Style.Triggers>
            <Trigger Property="IsFocused" Value="False">
                <Setter Property="Background" Value="Gray" />
            </Trigger>
        </Style.Triggers>
    </Style>
</mm:MetroWindow.Style>

但它不起作用,背景总是灰色,即使窗口是焦点。我使用了错误的财产还是我做错了什么?

c# .net wpf xaml mahapps.metro
4个回答
2
投票

使用IsActive属性:

XAML:

    <Style x:Key="MetroWindowStyle2" TargetType="{x:Type Controls:MetroWindow}">
        <Style.Triggers>
            <Trigger Property="IsActive" Value="False">
                <Setter Property="Background" Value="Gray" />
            </Trigger>
        </Style.Triggers>
    </Style>

enter image description here


0
投票

你需要添加:

        <Trigger Property="IsFocused" Value="True">
            <Setter Property="Background" Value="Red" />
        </Trigger>

(或者你想要的背景颜色)。

您可能还需要添加:

 <Setter Property="Focusable" Value="true"/>

你的风格。

Source


0
投票

您还需要在Style中设置活动背景。有几种方法可以设置背景,而Style在层次结构中并不高。见https://msdn.microsoft.com/en-us/library/ms743230%28v=vs.100%29.aspx

<mm:MetroWindow.Style>
    <Style TargetType="{x:Type mm:MetroWindow}">
        <Setter Property="Background" Value="someColour" />
        <Style.Triggers>
            <Trigger Property="IsFocused" Value="False">
                <Setter Property="Background" Value="Gray" />
            </Trigger>
        </Style.Triggers>
    </Style>
</mm:MetroWindow.Style>

0
投票

实际上,我可以看到你使用的主题是MahApps.Metro。对于该主题,您可以如下设置属性'NonActiveWindowTitleBrush'来控制非活动窗口标题的颜色。在下面的示例中,我将非活动窗口标题设置为白色。

<Controls:MetroWindow x:Class="CefSharp.MinimalExample.Wpf.MainWindow"                      
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:wpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
                    xmlns:cef="clr-namespace:CefSharp;assembly=CefSharp.Core"

                    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
                    xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"   

                    NonActiveWindowTitleBrush="White"

>
© www.soinside.com 2019 - 2024. All rights reserved.