窗口全屏

  • 窗口尺寸

示例
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: 窗口全屏, 窗口尺寸的更多相关文章

  1. 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸

    [源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/F ...

  2. QT中关于窗口全屏显示与退出全屏的实现

    近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...

  3. Windows中检测当前是否有窗口全屏

    不时看到有人问起如何判断当前是否有窗口正处于全屏状态? 不过, 在解决这个问题之前先来解决一个简单的问题?         什么是全屏?     相当一部分人认为: 窗口如果是最大化的, 那么它就是最 ...

  4. win32之全屏窗口

    游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的. #include <windows.h> void RegisterMyClass(); LRESULT ...

  5. OSG addEventHandler W键显示网格 L键控制光照 F键切换全屏窗口 S键显示统计数据 事件处理器

    #include <osgGA/StateSetManipulator> #include <osgViewer/ViewerEventHandlers> // add the ...

  6. OpenGL 使用GLFW创建全屏窗口

    OpenGL 使用GLFW创建全屏窗口 GLFW库里面的glfwCreateWindow()函数是用来创建窗口的函数. 这样函数的原型是: GLFWwindow* glfwCreateWindow(i ...

  7. Directx11教程(12) 禁止alt+enter全屏窗口

    原文:Directx11教程(12) 禁止alt+enter全屏窗口        在D3D11应用程序中,我们按下alt+enter键,会切换到全屏模式.有时候,我们在WM_SIZE中有一些代码,全 ...

  8. OSG 初始化为非全屏窗口

    OSG默认的窗口时全屏的,调试的时候不方便. 在网上看到一段代码,可以非全屏显示 int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer vie ...

  9. window.open 打开全屏窗口

    window.open新打开页面为全屏状态,各个浏览器情况不一致. window.open   弹出新窗口的命令:     'page.html'   弹出窗口的文件名:     'newwindow ...

随机推荐

  1. (转)[原] Android 自定义View 密码框 例子

    遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 ...

  2. 关于final关键字和抽象类,接口

    final主要用于修饰类,方法以及属性 当用于修饰类时,则这个类不能被子类继承,换而言之该类没有子类 当用于修饰方法时,该方法也是不能被复写的 当用于修饰属性时,同理属性值不能被更改 抽象类,当存在抽 ...

  3. iPhone被盗后续更新一:怎么找老机

    [找老机] 还是找警察给你发邮件,然后要求苹果扣机.毕竟全国所有被换机的iPhone最终都会返还到苹果上海的仓库.关键就是一定要快. 当时有群里的朋友,5S被偷,后来警察发邮件,然后苹果允许对方去具体 ...

  4. Linux 平台MySQL启动关闭方式总结

    MySQL的启动方法有很多种,下面对比.总结这几种方法的一些差异和特性,下面实验的版本为MySQL 5.6.如有疏漏或不足,敬请指点一二.   1:使用mysqld启动.关闭MySQL服务 mysql ...

  5. Unable to open the physical file xxxx. Operating system error 2

    在新UAT服务器上,需要将tempdb放置在SSD(固态硬盘)上.由于SSD(固态硬盘)特性,所以tempdb的文件只能放置在D盘下面,而不能是D盘下的某一个目录下面. ALTER  DATABASE ...

  6. SQL Challenge ——快速找到1-100之间缺失的数

    有个经典的题目:1-100之间的数字(不重复)存放在表里,共95行一列,但是里面缺了5个数字,怎么用SQL最快找出那五个数字. 我们先来看看Oracle数据库如何实现,如下所示,我们先准备测试环境和数 ...

  7. SQL Server跨库查询

    方式一: 语句 SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field "DBO"可以省略 如 SELEC ...

  8. 在Ubuntu上单机安装Hadoop

    最近大数据比较火,所以也想学习一下,所以在虚拟机安装Ubuntu Server,然后安装Hadoop. 以下是安装步骤: 1. 安装Java 如果是新机器,默认没有安装java,运行java –ver ...

  9. Function.prototype.call 和 Function.prototype.apply 的区别

    call和apply函数是function函数的基本属性,都可以用于更改函数对象和传递参数,是前端工程师常用的函数.具体使用方法请参考以下案列: 例如: 申明函数: var fn = function ...

  10. stl之截取:以一段字符串截取字符串

    string dforder = line.substr(0,line.find("\t")).c_str(); 解析: line为传进来的string类型 substr查找第0位 ...