zoukankan      html  css  js  c++  java
  • UWP仿网易云音乐之1-TitleBar

    首先,创建一个UWP的项目。我使用的是Visual Studio 2017 社区版。

    如图,我们将项目命名为UWP-Music。

    现在我们先标题栏的配色调整与网易云音乐一致。

    我们先分析一下标题栏,默认标题栏主要有三部分,应用名称、空白区域、按钮(最小化、最大化,关闭)。

    分析行为,可以得到:

    1.标题栏激活状态,即窗体获得焦点(包括按钮激活)

    2.标题栏未激活状态,即窗体失去焦点(包括按钮未激活)

    3.按钮鼠标滑过状态

    4.按钮按下状态

    分析配色:

    1.标题栏激活时,空白和按钮背景是一种偏暗的红色(背景色),文字和按钮的图标是白色(前景色)

    2.按钮鼠标滑过时,是一种明亮的红色;按钮按下时,是一种很浅的红色

    3.窗体失焦时,空白和按钮背景是一种带灰白的红色(背景色),文字和按钮图标是白色(前景色)

    我们现在明确了相应行下颜色的设置,为了更准确模仿网易云音乐的本色,我们用最简单的方法:截图加取色。用打印屏幕或者截图工具截取网易云音乐各种状态下的颜色,保存文件,用画图打开,用取色器获取颜色。

    我取得的色值如下:

    激活背景色(包括按钮): new Color() { A = 255, R = 189, G = 47, B = 46 }

    激活前景色(包括按钮):Colors.White

    按钮鼠标滑过背景色:new Color() { A = 255, R = 230, G = 17, B = 35 }

    按钮鼠标按下背景色:new Color() { A = 255, R = 243, G = 112, B = 120 }

    未激活背景色(包括按钮):new Color() { A = 255, R = 181, G = 113, B = 114 }

    代码中,我们通过

    ApplicationView.GetForCurrentView().TitleBar
    

      获得当前的标题栏

    把自定义颜色统一放在一个类中,代码如下

        public class CustomColors
        {
            public static Color TitleBackGroundColor
            {
                get
                {
                    return new Color() { A = 255, R = 189, G = 47, B = 46 };
                }
            }
    
            public static Color TitleInactiveColor
            {
                get
                {
                    return new Color() { A = 255, R = 181, G = 113, B = 114 };
                }
            }
    
            public static Color TitleHoverBackgroundColor
            {
                get
                {
                    return new Color() { A = 255, R = 230, G = 17, B = 35 };
                }
            }
    
            public static Color TitlePressedBackgroundColor
            {
                get
                {
                    return new Color() { A = 255, R = 243, G = 112, B = 120 };
                }
            }
        }
    

      颜色设置代码:

                var appTitleBar = ApplicationView.GetForCurrentView().TitleBar;
                appTitleBar.BackgroundColor = CustomColors.TitleBackGroundColor;
                appTitleBar.ButtonBackgroundColor = CustomColors.TitleBackGroundColor;
    
                appTitleBar.InactiveBackgroundColor = CustomColors.TitleInactiveColor;
                appTitleBar.ButtonInactiveBackgroundColor = CustomColors.TitleInactiveColor;
                appTitleBar.InactiveForegroundColor = Colors.White;
                appTitleBar.ButtonInactiveForegroundColor = Colors.White;
    
                appTitleBar.ButtonHoverBackgroundColor = CustomColors.TitleHoverBackgroundColor;
                appTitleBar.ButtonHoverForegroundColor = Colors.White;
    
                appTitleBar.ButtonPressedBackgroundColor = CustomColors.TitlePressedBackgroundColor;
                appTitleBar.ButtonPressedForegroundColor = Colors.White;
    

      效果如下:(上传后压缩得好惨,太难看了,还是真实的好看)

  • 相关阅读:
    (双指针 二分) leetcode 167. Two Sum II
    (双指针) leetcode 485. Max Consecutive Ones
    (双指针) leetcode 27. Remove Element
    (String) leetcode 67. Add Binary
    (数组) leetcode 66. Plus One
    (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal
    (N叉树 递归) leetcode 590. N-ary Tree Postorder Traversal
    (N叉树 递归) leetcode589. N-ary Tree Preorder Traversal
    (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
    (BST 递归) leetcode98. Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/dev2007/p/6667429.html
Copyright © 2011-2022 走看看