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

Set inactive color for customized titlebar

我遵循了 uwp titlebar sample,除了一件事它工作正常,标题栏的颜色总是相同的,但是当 window 不在前景时它应该不同,我尝试使用 LayoutMetricsChangedIsVisibleChanged 来监听 defocus 事件,但它不起作用,那么如何设置新条的不同颜色并使它像真实的一样?

查看这篇文章:Eternal Coding - Take the control of your titlebar

您将不得不处理事件 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;
    }
}

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