在UWP开发中,我们可以改变状态栏样式,让你的应用更加好看。

先来一简单的应用:

为了做例子,所以我做的很简单,在MainPage的Grid里,插了一个Image

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Image Source="Assets/images/indexBg.jpg"
Stretch="UniformToFill"/>
</Grid>

但是万恶的状态真的好丑啊!

所以需要写点代码将状态栏隐藏了,只留下右上角三个按钮。

namespace CustomTitleBarSample
{
/// <summary>
/// 可用于自身或导航至 Frame 内部的空白页。
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
HideTitleBar();
} /// <summary>
/// 隐藏默认的状态栏
/// </summary>
public void HideTitleBar()
{
//获取当前视图相关的状态栏
var titleBar = CoreApplication.GetCurrentView().TitleBar;
//将视图扩展到状态栏
titleBar.ExtendViewIntoTitleBar = true;
} }
}  

 

效果图:

虽然状态栏现在是隐藏了,但是我们发现标题的名字也没了,这是没办法的,有取舍,你自己可以自己写一个标题名字放在左上角就好了。

现在三个按钮的样式的样式还是有点违和,我们需要修饰一下样式。。。2333

namespace CustomTitleBarSample
{
/// <summary>
/// 可用于自身或导航至 Frame 内部的空白页。
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
SetTitleBarStyle();
HideTitleBar(); } /// <summary>
/// 隐藏默认的状态栏
/// </summary>
public void HideTitleBar()
{
//获取当前视图相关的状态栏
var titleBar = CoreApplication.GetCurrentView().TitleBar;
//将视图扩展到状态栏
titleBar.ExtendViewIntoTitleBar = true;
} public void SetTitleBarStyle()
{
//获取活动应用程序的视图状态和行为设置
var view = ApplicationView.GetForCurrentView(); //下面这两个是给当你不把状态栏隐藏时设置的 //active 当前被激活时
view.TitleBar.BackgroundColor = Colors.Red;
view.TitleBar.ForegroundColor = Colors.Black; //inactive 不是当前窗口,我觉得不常用
view.TitleBar.InactiveBackgroundColor = Colors.Red;
view.TitleBar.InactiveForegroundColor = Colors.Black; //button //初始
view.TitleBar.ButtonBackgroundColor = Colors.Transparent;
view.TitleBar.ButtonForegroundColor = Colors.White; //悬浮
view.TitleBar.ButtonHoverBackgroundColor = Colors.DarkGray;
view.TitleBar.ButtonHoverForegroundColor = Colors.White; //按下
view.TitleBar.ButtonPressedBackgroundColor = Colors.DarkGray;
view.TitleBar.ButtonPressedForegroundColor = Colors.White; //inactive 不是当前窗口,我觉得不常用
view.TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent;
view.TitleBar.ButtonInactiveForegroundColor = Colors.White;
} }
}

 最终效果

状态栏消失了,三个按钮也是透明的,舒服多了。

demo:https://github.com/creatorMao/UWPStudySamples

 

UWP 自定义状态栏的更多相关文章

  1. 如何实现 iOS 自定义状态栏

    给大家介绍如何实现 iOS 自定义状态栏 Sample Code: 01 UIWindow * statusWindow = [[UIWindow alloc] initWithFrame:[UIAp ...

  2. android自定义状态栏颜色

    我们知道IOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错 ...

  3. [uwp]自定义图形裁切控件

    开始之前,先上一张美图.图中的花叫什么,我已经忘了,或者说从来就不知道,总之谓之曰“野花”.只记得花很美,很香,春夏时节,漫山遍野全是她.这大概是七八年前的记忆了,不过她依旧会很准时的在山上沐浴春光, ...

  4. xamarin UWP自定义圆角按钮

    uwp自带的button本身不支持圆角属性,所以要通过自定义控件实现. 通过设置Button的Background=“{x:Null}”设置为Null使背景为空,再设置Button.Content中的 ...

  5. ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色

    很多app中可以看到不同与导航栏的状态栏的颜色,他妈的真绕嘴. 一.更改状态栏颜色 (StatusBar) 就是比如导航栏是红色的状态栏是绿色的. 要实现这样的效果其实很简单,就是添加一个背景view ...

  6. UWP自定义RadioButton实现Tab底部导航

    先看效果: 参照Android的实现方式用RadioButton来实现,但是Uwp的RadioButton并没有安卓的Selector选择器 下面是一个比较简单的实现,如果有同学有更好的实现,欢迎留言 ...

  7. [UWP] 自定义一个ItemsPanel

    在做游民星空的搜索页面的时候,需要展示搜索热点词,返回的是一个string数组的形式,然后以一种错落的方式显示,每一个Item的大小都和热点词长度一致,然后一行放不下之后就换行,描述的不太直观,直接看 ...

  8. UWP 自定义RadioButton实现Tab底部导航

    先看效果: 参照Android的实现方式用RadioButton来实现,但是Uwp的RadioButton并没有安卓的Selector选择器 下面是一个比较简单的实现,如果有同学有更好的实现,欢迎留言 ...

  9. 自定义状态栏的颜色及navigation的title颜色

    1.在info.plist中添加View controller-based status bar appearance,值为NO 2.在设置状态栏的地方添加代码 [[UIApplication sha ...

随机推荐

  1. 怎样通过js 取消input域的hidden属性使其变的可见

    document.getElementById(ID).setAttribute("hidden",false);厉害了 我的哥!

  2. RPC框架实现思路浅析

    第一部分,设计分析 远程调用要解决的主要问题: 1,序列化 : 如何将对象转化为二进制数据进行传输,如何将二进制数据转化对象 2,数据的传输(协议,第三方框架) 3,服务的注册/发现,单点故障,分布式 ...

  3. c语言中的文件格式化读写函数fscanf和fprintf函数

    很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大 ...

  4. Netty自娱自乐之类Dubbo RPC 框架设计构想 【上篇】

    之前在前一篇的<Netty自娱自乐之协议栈设计>,菜鸟我已经自娱自乐了设计协议栈,gitHub地址为https://github.com/vOoT/ncustomer-protocal.先 ...

  5. poj 3694双联通缩点+LCA

    题意:给你一个无向连通图,每次加一条边后,问图中桥的数目. 思路:先将图进行双联通缩点,则缩点后图的边就是桥,然后dfs记录节点深度,给出(u,v)使其节点深度先降到同一等级,然后同时降等级直到汇合到 ...

  6. 扫雷游戏制作过程(C#描述):第四节、菜单操作

    前言 这里给出教程原文地址. 该项目已经放在github上托管. 菜单操作 我们现在的程序单击菜单的时候不会有任何反应,这一节我们主要介绍菜单的相关代码,使得菜单能够正常使用. 现在我们希望在对应级别 ...

  7. 201521123005 《Java程序设计》第1周学习总结

    1. 本章学习总结 了解JDK/JRE/JVM,学会了如何安装JDK 学会使用控制台和eclipse上运行java代码 了解PTA提交的常见套路 http://www.cnblogs.com/zhrb ...

  8. 201521145042《Java程序设计》第14周学习总结

    MySql操作视频与数据库相关jar文件请参考QQ群文件. 本次作业参考文件 数据库PPT 0. 本周课程设计发布 Java课程设计 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总 ...

  9. SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】

    Controller方法返回值 Controller方法的返回值其实就几种类型,我们来总结一下-. void String ModelAndView redirect重定向 forward转发 数据回 ...

  10. log4j 日志脱敏处理 + java properties文件加载

    Java 加载Properties 配置文件: ResourceBundle bundle = ResourceBundle.getBundle("log4j_filter"); ...