title author date CreateTime categories
win10 uwp ApplicationView
lindexi
2018-08-10 19:16:53 +0800
2018-2-13 17:23:3 +0800
Win10 UWP

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

可以使用简单获取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

2018-8-10-win10-uwp-ApplicationView的更多相关文章

  1. win10 uwp ApplicationView

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

  2. win10 uwp 渲染原理 DirectComposition 渲染

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

  3. win10 uwp 使用 Microsoft.Graph 发送邮件

    在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...

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

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

  5. Win10 UWP开发实现Bing翻译

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

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

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

  7. Win10 UWP应用发布流程

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

  8. win10 uwp 列表模板选择器

    本文主要讲ListView等列表可以根据内容不同,使用不同模板的列表模板选择器,DataTemplateSelector. 如果在 UWP 需要定义某些列的显示和其他列不同,或者某些行的显示和其他行不 ...

  9. win10 uwp 获得元素绝对坐标

    有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用. 那么 UWP 如何获得元素坐标? 我提供了一个方法,可以获得元素的坐标. 首先需要获得元素,如果没有获得元素,那么如何得到他的坐标? ...

  10. win10 uwp 毛玻璃

    毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...

随机推荐

  1. JavaScript — event介绍以及兼容处理

    JavaScript - event介绍以及兼容处理 1.事件流 浏览器发展到第四代时(IE4及 Netscape Communicator 4),浏览器开发团队遇到一个问题:页面的哪个部分会拥有某个 ...

  2. GeneXus笔记本—获取当月的最后一天

    首先获取当前日期 然后赋值为当前年月的第一天  然后加一个月 减去一天 就是当月最后一天 多用于筛选数据时的条件或者区间 我们先随便拉个页面  简单点就好 放入两个textblock 然后点击Even ...

  3. vue 组件之间互相传值:兄弟组件通信

    vue 组件之间互相传值:兄弟组件通信我们在项目中经常会遇到兄弟组件通信的情况.在大型项目中我们可以通过引入 vuex 轻松管理各组件之间通信问题,但在一些小型的项目中,我们就没有必要去引入 vuex ...

  4. SVN 的安装及配置

    1.安装subversion yum install subversion 2.创建仓库目录 mkdir /svn 3. 为项目3创建仓库 svnadmin create /svn/proj3 4.修 ...

  5. 转载 Log4j2在WEB项目中配置

    最近决定在新WEB项目中使用新的日志系统Log4j2. 官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/ 首先在WEB项目中引入以下几个jar包: ① ...

  6. python读写excel(xlrd、xlwt)

    一.读excel表 读excel用到xlrd模块,写excel用到xlwt模块: # 1.导入模块 import xlrd # 2.打开Excel文件读取数据 workbook = xlrd.open ...

  7. ubuntu openssl 生成密钥对

    一般情况下ubuntu和mac系统都会自带openssl,安装之前先测试一下,打开终端,输入openssl,如果出现以下画面,即已安装. root@jiang:/home/kevin/work/ope ...

  8. Table 'jiang.hibernate_sequence' doesn't exist

    spring+struts2+hibernate 运行报错 Table 'jiang.hibernate_sequence' doesn't exist 解决方法 一. 在hibernate.cfg. ...

  9. zk不同页面之间的即时刷新

    公共刷新方法 import org.zkoss.bind.annotation.GlobalCommand; import org.zkoss.bind.annotation.NotifyChange ...

  10. PHP disk_total_space() 函数

    定义和用法 disk_total_space() 函数返回指定目录的磁盘总容量,以字节为单位. 语法 disk_total_space(directory) 参数 描述 directory 必需.规定 ...