如果窗口不是当前活动窗口,我希望背景更改为灰色。我试过这个:
<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>
但它不起作用,即使窗口处于焦点,背景总是灰色。我使用了错误的财产或我做错了什么?
答案 0 :(得分: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>
答案 1 :(得分:0)
您需要添加:
<Trigger Property="IsFocused" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
(或您想要的背景颜色)。
您可能还需要添加:
<Setter Property="Focusable" Value="true"/>
你的风格。
答案 2 :(得分: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>
答案 3 :(得分: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"
>