窗口全屏

  • 窗口尺寸

示例
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. codeforces 360 C

    C - NP-Hard Problem Description Recently, Pari and Arya did some research about NP-Hard problems and ...

  2. 浅谈AngularJS中的$parse和$eval

    AngularJS的初学者常常会对$parse和$eval两个内建服务感到有些困惑,今天我们就来说说AngularJS中的$parse和$eval. 总的来说,$parse和$eval都是作用于Ang ...

  3. transition代替简单的animation注意事项

    一. transition 和 animation  不支持    Internet Explorer 9,以及更早的版本. 二. 要变化的属性 transition-property:要变化的属性, ...

  4. php 字符串处理

    <?php $a = " n001|n002|n003|n004 "; //echo strlen($a);//取字符串的长度 //var_dump(strcmp(" ...

  5. LR Socket 测试demo

    建议像我这样最开始未接触过的,还是先从简单录制开始.录制完之后,分析测试脚本,再学习,再自己根据需要编写测试脚本. 第一:录制. A.    B. 选择需要录制的exe的目录 ,填写完后点击ok. C ...

  6. 【转】Android中的颜色设置

    原文网址:http://www.cnblogs.com/bluestorm/p/3644669.html 1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如: 1 2 3 publ ...

  7. ProfessionalKnowledgeArchitecture

  8. day20 python常用模块

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀.     但其实import加载的模块分为四个通用类别: 1 使用pytho ...

  9. 区块链 编译android geth 填坑记录 ubuntu

    下载geth 源码  直接 make android 下载android ndk sdk 配置环境变量cd 安装golang  设置环境变量 发现没有gomobile命令 按照wiki方法 执行安装g ...

  10. PM2用法简介

    简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单.引用 全局安装 sudo npm install pm2@lat ...