Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为自定义标题栏设置非活动颜色_C#_Uwp_Titlebar - Fatal编程技术网

C# 为自定义标题栏设置非活动颜色

C# 为自定义标题栏设置非活动颜色,c#,uwp,titlebar,C#,Uwp,Titlebar,我遵循uwp,除了一件事,它工作正常,标题栏的颜色总是一样的,但当窗口不在前景时,它应该不同,我尝试使用LayoutMetricsChanged和IsVisibleChanged来收听散焦事件,但它不起作用,那么,如何设置新条的不同颜色并使其与真实条一样?查看本文: 您必须处理事件Window.Current.Activated。例如,下面是从同一篇文章中提取的代码: private void Current_Activated(object sender, WindowActivatedEve

我遵循uwp,除了一件事,它工作正常,标题栏的颜色总是一样的,但当窗口不在前景时,它应该不同,我尝试使用
LayoutMetricsChanged
IsVisibleChanged
来收听散焦事件,但它不起作用,那么,如何设置新条的不同颜色并使其与真实条一样?

查看本文:

您必须处理事件
Window.Current.Activated
。例如,下面是从同一篇文章中提取的代码:

private void Current_Activated(object sender, WindowActivatedEventArgs e)
{
    if (e.WindowActivationState != CoreWindowActivationState.Deactivated)
    {
        BackButtonGrid.Visibility = Visibility.Visible;
        MainTitleBar.Opacity = 1;
    }
    else
    {
        BackButtonGrid.Visibility = Visibility.Collapsed;
        MainTitleBar.Opacity = 0.5;
    }
}

当窗口获得或失去焦点时,此代码段将更新其自定义标题栏的不透明度。

若要检查应用程序是否具有焦点,请查看此处:
InactiveBackgroundColor
指定窗口不是前景时的标题栏颜色。@RaymondChen是,但自定义标题栏是UIelement,不是Applicationviewtitlebar,所以没有这样的设置。啊,我误解了这个问题。您有一个自定义绘制的标题栏(不仅仅是自定义颜色标题栏)。您可以请求UISettings.UIElementColor(InactiveCaption)以了解非活动标题的颜色。您可以在窗口激活状态更改时更改颜色
IsVisibleChanged
告诉您何时显示/隐藏自定义标题栏。(例如,用户使应用程序全屏显示,因此标题栏隐藏。然后用户将鼠标撞到屏幕顶部,标题栏暂时重新显示。)@RaymondChen UISettings.UIElementColor是我要找的内容之一,谢谢。因此,没有办法让UIElement像标题栏一样,自行设置颜色?我想
Window.SetTitleBar
可以。除此之外,看起来总共有12种颜色()我需要处理,以便使标题栏像system one一样真实,其中一些颜色不在
UIElementColor
Enum中。