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;
    

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

  • 相关阅读:
    第二十一回  基础才是重中之重~网站bin目录下的程序集自动加载
    C# Socket编程(4)初识Socket和数据流
    SQL日期格式转换(备忘)
    C#正则表达式匹配替换字符串
    CSS万能闭合标签(常用)
    JS比较两个时间大小的简洁代码
    List的Sort自定义排序实例
    char(n) varchar(n)的区别
    AJAX小例一枚(仅GET)
    聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含
  • 原文地址:https://www.cnblogs.com/dev2007/p/6667429.html
Copyright © 2011-2022 走看看