原文:win10 uwp ApplicationView

本文和大家介绍一个重要的类,他可以用来设置窗口,如设置启动大小,设置是否允许截图,是否进入全屏,所有和窗口有关的,都可以在他这里设置。

可以使用简单获取ApplicationView applicationView = ApplicationView.GetForCurrentView(); ,注意,他是不能构造创建

先从属性开始

第一个属性是 AdjacentToLeftDisplayEdge ,判断是不是靠近屏幕左边,在和屏幕只有20像素之内就是,但是其他包括窗口在屏幕外就不是。和他差不多的有属性 AdjacentToRightDisplayEdge 判断是否靠近右边缘。

这个属性和获得窗口变化一起使用。

如何获得窗口大小变化?使用 CoreWindow.GetForCurrentThread().SizeChanged 可以获得窗口大小变化,可以获得是否靠近屏幕左边。

第二是 DesiredBoundsMode 感觉没什么用,指示框架用于排列窗口内容边界值

  • FullScreenSystemOverlayMode 全屏响应手势的模式,包括手势可调用系统覆盖(标题 任务栏), 边缘手势可调用临时 UI,而此UIElement反过来可调用对于该边缘的系统覆盖

  • 获取窗口 ID,使用 applicationView.Id ,对于UWP可以使用多个窗口,因为需要区分是哪个窗口,所以就可以使用这个。

  • 如何判断是否进入全屏?使用 applicationView.IsFullScreenMode 。判断是否全屏的功能,和他相同的 applicationView.IsFullScreen 也可以,但是这个不推荐

  • 如何获得窗口处于锁屏? applicationView.IsOnLockScreen 我自己尝试锁屏但是依旧无法获得,如果知道这个是什么,请告诉我。

  • 如何设置可以不截图?有些应用需要有秘密,不可以被截图,可以使用applicationView.IsScreenCaptureEnabled 如果设置 false,所有应用难以对程序截图。如果对于显示密码或其他的页面,是要求打开这个设置,也就是在输入密码时,是需要设置不可截图,如果设置了,那么截图是黑色,无法获得。在不显示密码时,可以设置为 true,这时可以截图。

    首先做一个简单的按钮,在点击他就设置为false,不可截图。在点击前,使用 Q 截图,发现可以

    点击之后,截图看到的

    如果设置了,可以看到,但是不可以获取,可以对信息安全要求高的程序进行使用,但是设置了性能可能没有之前好。

    关于不可截图,代码:https://code.msdn.microsoft.com/windowsapps/Disable-screen-capture-00efe630

    这个对于应用内截图是不是还可以使用,我还没去试,如果有大神做了,可以的话,请告诉。

  • 如何获取窗口是横向显示?applicationView.Orientation 可以获取窗口是宽度大于高度,也就是横向,还是相反。

    不是使用屏幕反向,是软件的宽度等,是不是看起来是横向

  • PreferredLaunchViewSize 这个属性是设置窗口大小使用,在设置 PreferredLaunchWindowingMode 为 PreferredLaunchViewSize 可以使用,使用方法:

           ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
ApplicationView.PreferredLaunchViewSize = new Size(100, 100);
如果设置无效,那么在最前设置 applicationView.SetPreferredMinSize(new Size(100,100));

PreferredLaunchWindowingMode ms建议使用 auto

  • 如果对于多窗口程序,可以设置 TerminateAppOnFinalViewClose 在关闭所有窗口关闭程序

  • 如何设置窗口标题?使用 applicationView.Title = “标题” 设置会在标题显示 “标题-程序”

  • 设置标题栏颜色 applicationView.TitleBar 可以获得标题栏,可以通过设置属性自定义标题栏

    • BackgroundColor

    • ButtonBackgroundColor

  • 获取窗口可见区 applicationView.VisibleBounds ,通过 applicationView.VisibleBoundsChanged 可以知道隐藏或显示标题栏会改变窗口可见大小的方法

  • 退出全屏 applicationView.ExitFullScreenMode(); 只有在桌面才可以使用

  • 进入全屏 applicationView.TryEnterFullScreenMode()

  • 修改窗口大小 applicationView.TryResizeView() 只有桌面才可以使用

  • 全屏显示标题栏 applicationView.ShowStandardSystemOverlays()

参见:https://docs.microsoft.com/en-us/uwp/api/windows.ui.viewmanagement.applicationview


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

win10 uwp ApplicationView的更多相关文章

  1. Win10 UWP开发系列:实现Master/Detail布局

    在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...

  2. win10 uwp 渲染原理 DirectComposition 渲染

    本文来告诉大家一个新的技术DirectComposition,在 win7 之后(实际上是 vista),微软正在考虑一个新的渲染机制 在 Windows Vista 就引入了一个服务,桌面窗口管理器 ...

  3. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  4. Win10 UWP开发实现Bing翻译

    微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...

  5. Win10/UWP开发—使用Cortana语音与App后台Service交互

    上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...

  6. 【Win10 UWP】后台任务与动态磁贴

    动态磁贴(Live Tile)是WP系统的大亮点之一,一直以来受到广大用户的喜爱.这一讲主要研究如何在UWP应用里通过后台任务添加和使用动态磁贴功能. 从WP7到Win8,再到Win10 UWP,磁贴 ...

  7. 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用

    协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...

  8. 【Win10 UWP】QQ SDK(二):SDK的回调处理

    上一讲,我们介绍了QQ SDK的使用方法,请看<[Win10 UWP]QQ SDK(一):SDK基本使用方法> 一. 回调的基本形式 从前面的介绍中我们知道,我们的应用和QQ客户端之间需要 ...

  9. Win10 UWP应用发布流程

    简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...

随机推荐

  1. HelloWorld RabbitMQ

    RabbitMQ入门-从HelloWorld开始 从读者的反馈谈RabbitMQ 昨天发完<RabbitMQ入门-初识RabbitMQ>,我陆陆续续收到一些反馈.鉴于部分读者希望结合实例来 ...

  2. 【SAE 部署 JavaWeb 项目报 404 错误】

    个人学习整理,如有不足之处,请不吝不吝赐教.转载请注明:@CSU-Max 今天写了一个小的 JavaWeb 项目传到 SAE 上.訪问的时候出错. 本地測试是正常的,并且曾经做微信平台开发的时候上传的 ...

  3. Expression Blend 的点滴(2)--利用可视化状态创建神奇翻转动画

    原文:Expression Blend 的点滴(2)--利用可视化状态创建神奇翻转动画 首先,来看下实现后的效果: 关于VisulaState VisualState 指定控件处于特定状态时的外观.例 ...

  4. Activity启动模式需注意的坑

    标准启动Standard模式版本差异: 在Lollipop之前,每次以MULTIPLE启动的Activity都会被压入当前任务的顶部,启动 N 次,在当前任务就会出现 N 个Activity的实例,每 ...

  5. Watchdog问题实例分析

    1.日志获取 Watchdog相关的问题甚至需要以下所有的日志: logcat 通过adb logcat命令输出Android的一些当前运行日志,可以通过logcat的 -b 参数指定要输出的日志缓冲 ...

  6. 【25.47%】【codeforces 733D】Kostya the Sculptor

    time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  7. General-Purpose Operating System Protection Profile

    1 Protection Profile Introduction   This document defines the security functionality expected to be ...

  8. Massively parallel supercomputer

    A novel massively parallel supercomputer of hundreds of teraOPS-scale includes node architectures ba ...

  9. Modbus TCP 示例报文

    调试modbus  tcp 整理百度文库文档如下 <modbus-tcp-报文举例分析> <MODBUSTCP通讯报文> Client request: 19 B2 00 00 ...

  10. 【003】【Java虚拟机——对象死亡的判断】

    对象死亡! 垃圾收集器在对堆进行回收前,首先要做的事情就是要确定这些对象之中哪些还"存活"着, 哪些已经"死去" (即不可能再被不论什么途径使用的对象). 1)  引用计 ...