UI: 窗口全屏, 窗口尺寸
窗口全屏
- 窗口尺寸
示例
1、窗口全屏
UI/FullScreen.xaml

<Page
x:Class="Windows10.UI.FullScreen"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.UI"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <TextBlock Name="lblMsg" Margin="0 10 0 0" /> <Button Name="btnFullScreen" Content="全屏/取消全屏" Click="btnFullScreen_Click" Margin="0 10 0 0" /> <Button Name="btnShowStandardSystemOverlays" Content="在全屏状态下,显示系统 UI,比如标题栏和任务栏" Click="btnShowStandardSystemOverlays_Click" Margin="0 10 0 0" /> <CheckBox Name="chkFullScreenSystemOverlayMode" Content="全屏状态下的,系统边缘手势的响应模式 unchecked:FullScreenSystemOverlayMode.Standard, checked:FullScreenSystemOverlayMode.Minimal" Click="chkFullScreenSystemOverlayMode_Click" Margin="0,10,0,0" /> <CheckBox Name="chkPreferredLaunchWindowingMode" Content="窗口的启动模式 unchecked:ApplicationViewWindowingMode.Auto, unchecked:ApplicationViewWindowingMode.FullScreen" Click="chkPreferredLaunchWindowingMode_Click" Margin="0,10,0,0" /> </StackPanel>
</Grid>
</Page>

UI/FullScreen.xaml.cs

/*
* 演示“窗口全屏”相关知识点
*
* ApplicationView - 用于操作窗口以及获取窗口信息
* GetForCurrentView() - 返回 ApplicationView 实例
*/ using Windows.System;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Navigation; namespace Windows10.UI
{
public sealed partial class FullScreen : Page
{
private MainPage _rootPage; public FullScreen()
{
this.InitializeComponent(); this.Loaded += FullScreen_Loaded;
} private void FullScreen_Loaded(object sender, RoutedEventArgs e)
{
/*
* ApplicationView.PreferredLaunchWindowingMode - 窗口的启动模式
* Auto - 系统自动决定
* PreferredLaunchViewSize - 由 ApplicationView.PreferredLaunchViewSize 决定(参见:UI/ScreenSize.xaml)
* FullScreen - 全屏启动
*
* ApplicationView.GetForCurrentView().FullScreenSystemOverlayMode - 全屏状态下的,系统边缘手势的响应模式
* Standard - 标准方式。比如鼠标移动到顶端显示标题栏,移动到底端显示任务栏
* Minimal - 最小方式。比如鼠标移动到顶端显示一个小的临时 UI,移动到底端显示一个小的临时 UI,点击这个临时 UI 时再显示标题栏或任务栏
*/ // unchecked:FullScreenSystemOverlayMode.Standard, checked:FullScreenSystemOverlayMode.Minimal
chkFullScreenSystemOverlayMode.IsChecked = ApplicationView.GetForCurrentView().FullScreenSystemOverlayMode == FullScreenSystemOverlayMode.Minimal; // unchecked:ApplicationViewWindowingMode.Auto, unchecked:ApplicationViewWindowingMode.FullScreen
chkPreferredLaunchWindowingMode.IsChecked = ApplicationView.PreferredLaunchWindowingMode == ApplicationViewWindowingMode.FullScreen;
} protected override void OnNavigatedTo(NavigationEventArgs e)
{
_rootPage = MainPage.Current;
_rootPage.KeyDown += _rootPage_KeyDown;
} protected override void OnNavigatedFrom(NavigationEventArgs e)
{
_rootPage.KeyDown -= _rootPage_KeyDown;
} private void _rootPage_KeyDown(object sender, KeyRoutedEventArgs e)
{
// 判断是否按下了 escape 键
if (e.Key == VirtualKey.Escape)
{
var view = ApplicationView.GetForCurrentView();
if (view.IsFullScreenMode)
{
// 退出全屏状态
view.ExitFullScreenMode();
}
}
} private void btnFullScreen_Click(object sender, RoutedEventArgs e)
{
ApplicationView view = ApplicationView.GetForCurrentView();
// 判断当前是否是全屏模式
if (view.IsFullScreenMode)
{
// 退出全屏模式
view.ExitFullScreenMode();
lblMsg.Text = "退出全屏模式";
}
else
{
// 尝试进入全屏模式
bool isSuccess = view.TryEnterFullScreenMode();
if (isSuccess)
{
lblMsg.Text = "进入全屏模式";
}
else
{
lblMsg.Text = "尝试进入全屏模式失败";
}
}
} private void btnShowStandardSystemOverlays_Click(object sender, RoutedEventArgs e)
{
ApplicationView view = ApplicationView.GetForCurrentView();
// 在全屏状态下,是否显示系统 UI,比如标题栏和任务栏
view.ShowStandardSystemOverlays();
} private void chkFullScreenSystemOverlayMode_Click(object sender, RoutedEventArgs e)
{
ApplicationView view = ApplicationView.GetForCurrentView();
view.FullScreenSystemOverlayMode = chkFullScreenSystemOverlayMode.IsChecked.Value ? FullScreenSystemOverlayMode.Minimal : FullScreenSystemOverlayMode.Standard;
} private void chkPreferredLaunchWindowingMode_Click(object sender, RoutedEventArgs e)
{
ApplicationView.PreferredLaunchWindowingMode = chkPreferredLaunchWindowingMode.IsChecked.Value ? ApplicationViewWindowingMode.FullScreen : ApplicationViewWindowingMode.Auto;
}
}
}

2、窗口尺寸
UI/ScreenSize.xaml

<Page
x:Class="Windows10.UI.ScreenSize"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.UI"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <TextBlock Name="lblMsg" Margin="0 10 0 0" /> <Button Name="btnChangeSize" Content="尝试改变窗口大小" Click="btnChangeSize_Click" Margin="0 10 0 0" /> </StackPanel>
</Grid>
</Page>

UI/ScreenSize.xaml.cs

/*
* 演示“窗口尺寸”相关知识点
*
* ApplicationView - 用于操作窗口以及获取窗口信息
* GetForCurrentView() - 返回 ApplicationView 实例
*/ using Windows.Foundation;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation; namespace Windows10.UI
{
public sealed partial class ScreenSize : Page
{
public ScreenSize()
{
this.InitializeComponent(); this.Loaded += ScreenSize_Loaded;
} private void ScreenSize_Loaded(object sender, RoutedEventArgs e)
{
// Window.Current.Bounds - 当前窗口的大小(单位是有效像素,没有特别说明就都是有效像素)
// 注:窗口大小不包括标题栏,标题栏属于系统级 UI
lblMsg.Text = string.Format("window size: {0} * {1}", Window.Current.Bounds.Width, Window.Current.Bounds.Height); ApplicationView applicationView = ApplicationView.GetForCurrentView(); // SetPreferredMinSize(Size minSize) - 指定窗口允许的最小尺寸
// 最小 width 和最小 height 都不能为零,我这里测试的是最小 width 为 192,最小 height 为 48
applicationView.SetPreferredMinSize(new Size(200, 200)); // PreferredLaunchViewSize - 窗口启动时的初始尺寸
// 若要使 PreferredLaunchViewSize 设置有效,需要将 ApplicationView.PreferredLaunchWindowingMode 设置为 ApplicationViewWindowingMode.PreferredLaunchViewSize
ApplicationView.PreferredLaunchViewSize = new Size(800, 480);
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize; /*
* ApplicationView.PreferredLaunchWindowingMode - 窗口的启动模式
* Auto - 系统自动调整
* PreferredLaunchViewSize - 由 ApplicationView.PreferredLaunchViewSize 决定
* FullScreen - 全屏启动
*/
} protected override void OnNavigatedTo(NavigationEventArgs e)
{
// 窗口尺寸发生变化时触发的事件
Window.Current.SizeChanged += Current_SizeChanged;
} protected override void OnNavigatedFrom(NavigationEventArgs e)
{
Window.Current.SizeChanged -= Current_SizeChanged;
} private void Current_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
lblMsg.Text = string.Format("window size: {0} * {1}", e.Size.Width, e.Size.Height);
} private void btnChangeSize_Click(object sender, RoutedEventArgs e)
{
ApplicationView applicationView = ApplicationView.GetForCurrentView(); Size size = new Size(600, 600); // TryResizeView(Size value) - 尝试将窗口尺寸设置为指定的大小
bool success = applicationView.TryResizeView(size);
if (success)
{
lblMsg.Text = "尝试修改窗口尺寸成功";
}
else
{
lblMsg.Text = "尝试修改窗口尺寸失败";
} // 注:怎么修改窗口的显示位置呢?暂时不知道
}
}
}

UI: 窗口全屏, 窗口尺寸的更多相关文章
- 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸
[源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/F ...
- QT中关于窗口全屏显示与退出全屏的实现
近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...
- Windows中检测当前是否有窗口全屏
不时看到有人问起如何判断当前是否有窗口正处于全屏状态? 不过, 在解决这个问题之前先来解决一个简单的问题? 什么是全屏? 相当一部分人认为: 窗口如果是最大化的, 那么它就是最 ...
- win32之全屏窗口
游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的. #include <windows.h> void RegisterMyClass(); LRESULT ...
- OSG addEventHandler W键显示网格 L键控制光照 F键切换全屏窗口 S键显示统计数据 事件处理器
#include <osgGA/StateSetManipulator> #include <osgViewer/ViewerEventHandlers> // add the ...
- OpenGL 使用GLFW创建全屏窗口
OpenGL 使用GLFW创建全屏窗口 GLFW库里面的glfwCreateWindow()函数是用来创建窗口的函数. 这样函数的原型是: GLFWwindow* glfwCreateWindow(i ...
- Directx11教程(12) 禁止alt+enter全屏窗口
原文:Directx11教程(12) 禁止alt+enter全屏窗口 在D3D11应用程序中,我们按下alt+enter键,会切换到全屏模式.有时候,我们在WM_SIZE中有一些代码,全 ...
- OSG 初始化为非全屏窗口
OSG默认的窗口时全屏的,调试的时候不方便. 在网上看到一段代码,可以非全屏显示 int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer vie ...
- window.open 打开全屏窗口
window.open新打开页面为全屏状态,各个浏览器情况不一致. window.open 弹出新窗口的命令: 'page.html' 弹出窗口的文件名: 'newwindow ...
随机推荐
- Mac ping localhost 地址变化
title: Mac ping localhost 地址变化date: 2016-1-15 16:21:55categories: IOS tags: mac 小小程序猿我的博客:http://day ...
- IOS开发基础知识--碎片17
1:contentSize.contentInset和contentOffset区别 contentSize 是scrollview中的一个属性,它代表scrollview中的可显示区域,假如有一个s ...
- Core Data的一些常见用法
一.简介 Core Data是一个纯粹的面向对象框架,其本质就是一个ORM(对象关系映射:Object Relational Mapping),能以面向对象的方式操作SQLite数据库.在实际开发中绝 ...
- width 、 height 与 box-sizing : border-box ,content-box 的关系
默认 width .height的 content-box 的宽高. box-sizing 经常用来设置 width.height指定的区域 box-sizing 经常用做一些自适应的布局. 语法: ...
- 解决PKIX:unable to find valid certification path to requested target 的问题
这两天在twitter服务器上忽然遇到这样的异常: e: sun.security.validator.ValidatorException: PKIX path building failed: s ...
- 项 目 管 理 知 识 体 系 指 南 (PMBOK2008)
项 目 管 理 知 识 体 系 指 南 (第4版) PMBOK2008 输入 工具与技术 输出 4.项目整合管理 4.1 制定项目章程 4.1.1.1 项目工作说明书 4.1.2.1 专家判断 4.1 ...
- Wintel物联网平台-Windows IoT新手入门指南
1. 引言 近期,微软跟进物联网的速度也在不断加速,除了微软手环,.NET MicroFramework,还有一个叫做Windows IoT的项目.该项目早在今年4月份的Build大会上就提出来了,7 ...
- Python之路:堡垒机实例
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 ...
- 手动使用sql*plus创建Oracle数据库
下面是创建数据库必须执行的步骤: 1 )设置OS变量 2)配置初始化文件 3)创建必须的目录 4)创建数据库 5)创建数据目录 下面详细介绍这些步骤: 1 设置os变量 export ORACLE_H ...
- BI报表系统在银行业的应用
在当前大数据的背景下,银行业传统联机业务技术存在开发周期长.不够灵活.大量的业务数据难以充分利用.操作复杂.监控效率低等弊端,多数企业表示需要搭建一个符合银行特色的商业智能平台,把需要的数据和信息集中 ...