博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
张高兴的 UWP 开发笔记:手机状态栏 StatusBar
阅读量:6373 次
发布时间:2019-06-23

本文共 3427 字,大约阅读时间需要 11 分钟。

  UWP 有关应用标题栏 TitleBar 的文章比较多,但介绍 StatusBar 的却没几篇,在这里随便写写。状态栏 StatusBar 用法比较简单,花点心思稍微设计一下,对应用会是个很好的点缀。

  说明一下,当应用运行在 PC 上时我们叫 TitleBar ,运行在 Mobile 上时我们叫 StatusBar ,这是两个不同的玩意儿。

  

  在使用 StatusBar 之前,你需要在项目的引用里添加 Windows Mobile Extensions for the UWP ,并且引用 Windows.UI.ViewManagement 命名空间。

 

  StatusBar 类中一共有三个方法。分别为一个静态方法 GetForCurrentView() ,用于取得当前 StatusBar 实例。两个异步方法 HideAsync()ShowAsync() ,分别用来显示与隐藏 StatusBar 。

  五个属性。两个可空的 Color 类型 BackgroundColorForegroundColor ,分别用来设置背景色与前景色。 double 类型的 BackgroundOpacity ,取值范围为 0-1 ,用来设置 StatusBar 透明度。两个只读属性,返回 Rect 矩形的 OccludedRect 和 StatusBarProgressIndicator 类型的 ProgressIndicator ,ProgressIndicator 属性不太了解。

  两个事件。HidingShowing

 

  下面给出一个简单的示例(GitHub : )

  

  MainPage.xaml

Show
Hide
Black
White
System Accent Color

  MainPage.xaml.cs

using System;using Windows.UI.Xaml;using Windows.UI.Xaml.Controls;using Windows.UI.ViewManagement;using Windows.Foundation.Metadata;using Windows.UI;using Windows.UI.Xaml.Media;namespace StatusBarDemo{    public sealed partial class MainPage : Page    {        StatusBar statusBar;        // 获取系统当前颜色        SolidColorBrush accentColor = (SolidColorBrush)Application.Current.Resources["SystemControlBackgroundAccentBrush"];        public MainPage()        {            // 判断是否存在 StatusBar            if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))            {                statusBar = StatusBar.GetForCurrentView();            }            else            {                Application.Current.Exit();            }            this.InitializeComponent();        }        // 显示,隐藏        private async void RadioButton_Checked(object sender, RoutedEventArgs e)        {            RadioButton r = sender as RadioButton;            if (r.Name == "Show")            {                await statusBar.ShowAsync();             }            else            {                await statusBar.HideAsync();            }        }        // 颜色        private void Color_Checked(object sender, RoutedEventArgs e)        {            RadioButton r = sender as RadioButton;            if (r.Name == "Black")            {                statusBar.BackgroundColor = Colors.Black;                statusBar.ForegroundColor = Colors.White;              }            else if(r.Name == "White")            {                statusBar.BackgroundColor = Colors.White;                statusBar.ForegroundColor = Colors.Black;                statusBar.BackgroundOpacity = 1;            }            else            {                statusBar.BackgroundColor = accentColor.Color;                statusBar.ForegroundColor = Colors.Black;                statusBar.BackgroundOpacity = 1;            }        }        // 透明度        private void Opacity_ValueChanged(object sender, Windows.UI.Xaml.Controls.Primitives.RangeBaseValueChangedEventArgs e)        {            statusBar.BackgroundOpacity = Opacity.Value / 10;        }    }}

转载地址:http://jlyqa.baihongyu.com/

你可能感兴趣的文章
在Keil环境下使用JLink实现printf输出重定向至debug窗口
查看>>
postgres的\d命令不显示全部的用户表
查看>>
poj 3468 A Simple Problem with Integers
查看>>
OOA/OOD/OOP细讲
查看>>
Tomcat 系统架构与设计模式_ 设计模式分析
查看>>
Quartz的使用
查看>>
Spring Boot Quartz集成(一)
查看>>
IP子网划分
查看>>
海哥:再谈粉丝经济,你所知道的99%都是错误的。
查看>>
内涵图让你读懂社会
查看>>
awk学习笔记
查看>>
Spring 学习之bean的理解
查看>>
【不定期更新】游戏开发中的一些良好习惯与技术技巧
查看>>
DNS的初步了解
查看>>
多线程核对MD5码脚本
查看>>
LINUX 命令ifconfig 无效
查看>>
MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
查看>>
Oracle 11g安装过程中错误解决
查看>>
JavaScript强化教程——jQuery AJAX 实例
查看>>
Java中HashMap,LinkedHashMap,TreeMap的区别
查看>>