Windows 8.1 新控件和功能:
http://msdn.microsoft.com/zh-cn/library/windows/apps/bg182878.aspx#five
将 XAML 树呈现为位图:
适用于 Windows 8.1 的 Windows 运行时为 Windows.UI.Xaml.Media.Imaging 命名空间添加了一种新类型:RenderTargetBitmap。
此类型提供了两个关键方法:
RenderTargetBitmap.RenderAsync,用于提取 XAML 可视化树 并为其创建位图表示。
注意 此操作采用异步方式,将给定的 XAML 元素树呈现为位图。 此方法与屏幕刷新不同步,不能保证精确的帧计时,因此该位图可能在假定捕获时刻前后的一瞬间进行呈现。
RenderTargetBitmap.GetPixelsAsync,用于以特定格式返回像素的字节数组。
下例显示如何呈现 XAML 元素树。
var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(myElementTree); myImage.Source = renderTargetBitmap;
RenderTargetBitmap 继承自 ImageSource,因此可以直接将其设置为 Image 对象的源,而无需调用 GetPixelsAsync 以获取及显示位图数据。
下例显示如何将呈现的位图写入文件。
var bitmap = new RenderTargetBitmap();
await bitmap.RenderAsync(this.C1);
IBuffer buffer = await bitmap.GetPixelsAsync();
var pixelStream = buffer.AsStream(); FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.Desktop;
savePicker.FileTypeChoices.Add("Bitmap", new List<string>() { ".png" });
savePicker.SuggestedFileName = "New Bitmap"; StorageFile savedItem = await savePicker.PickSaveFileAsync(); Guid encoderId = BitmapEncoder.PngEncoderId;
IRandomAccessStream fileStream = await savedItem.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(encoderId, fileStream);
byte[] pixels = new byte[pixelStream.Length];
pixelStream.Read(pixels, , pixels.Length); //pixal format shouldconvert to rgba8
for (int i = ; i < pixels.Length; i += )
{
byte temp = pixels[i];
pixels[i] = pixels[i + ];
pixels[i + ] = temp;
} encoder.SetPixelData(
BitmapPixelFormat.Rgba8,
BitmapAlphaMode.Straight,
(uint)bitmap.PixelWidth,
(uint)bitmap.PixelHeight,
, // Horizontal DPI
, // Vertical DPI
pixels); await encoder.FlushAsync();
MetroApp保存UIEment为图片 http://www.cnblogs.com/manupstairs/p/3556642.html 的代码 也差不多。其//pixal format shouldconvert to rgba8 下面的一段交换代码不用会变色。
A new control for XAML that lets you easily create the hub design pattern that reflects the proper design guidelines and behaviors: the Hub control.
Hub pages are the user's entry point to your app.
(Hub页是用户进入应用的入口点。)
Hub可以分区显示,通过将不同的内容放入不同的HubSection来实现。HubSection也可以设置标题,做法与Hub一致。如果HubSection的IsHeaderInteractive属性为true,那么标题默认包含 '>' 字型,以及悬停和按下状态。
void Hub_SectionHeaderClick(object sender, HubSectionHeaderClickEventArgs e)
{
HubSection section = e.Section;
var group = section.DataContext;
this.Frame.Navigate(typeof(SectionPage), ((SampleDataGroup)group).UniqueId);
}
临时显示与用户当前操作相关的 UI:Flyout 控件。
临时显示与用户当前操作相关的命令或选项列表:MenuFlyout 控件。
轻松地创建应用设置浮出控件,恰如其分地反映设计思想和行为:SettingsFlyout 控件。
Windows 8.1 将 PlaceholderText 属性添加到多个包含文本的控件中。某些控件(如 ComboBox 或 PasswordBox)可能需要用户输入。如果不想使用默认值或显示空控件,你可以添加占位符文本以便为用户提供上下文。
XAML 数据绑定改进:
Windows 8.1 中添加了以下 API 元素:
FrameworkElement.DataContextChanged 事件允许你响应 DataContext 属性值中的变化。你可以使用此事件而不是通过数据绑定来手动更新控件属性。这对于解决数据绑定性能问题十分有效。
Binding.FallbackValue 和 Binding.TargetNullValue 属性可让你设置当绑定无法解析某个值或解析为 null 值时将会显示的默认值。
Binding.UpdateSourceTrigger 属性、FrameworkElement.GetBindingExpression 方法和 BindingExpression 类可让你将双向绑定的默认行为更改为 TextBox.Text 属性。默认情况下,TextBox.Text 绑定只有在控件失去焦点时才会更新其绑定源。将 UpdateSourceTrigger 设置为 PropertyChanged,以便在 TextBox.Text 属性更改值时更新源。将 UpdateSourceTrigger 设置为 Explicit,以便使用 BindingExpression.UpdateSource 方法通过编程方式更新源。
Windows 8.1 新控件和功能:的更多相关文章
- Windows高DPI系列控件(二) - 柱状图
目录 一.QCP 二.效果展示 三.高DPI适配 1.自定义柱状图 2.新的柱状图 3.测试代码 四.相关文章 原文链接:Windows高DPI系列控件(二) - 柱状图 一.QCP QCP全称QCu ...
- 【Android】Anroid5.0+新控件---酷炫标题栏的简单学习
Android5.0+推出的新控件感觉特别酷,最近想模仿大神做个看图App出来,所以先把这些新控件用熟悉了. 新控件的介绍.使用等等网上相应的文章已经特别多了,题主也没那能力去写篇详解出来,本篇随笔记 ...
- Android其它新控件 (转)
原文出处:http://blog.csdn.net/lavor_zl/article/details/51312715 Android其它新控件是指非Android大版本更新时提出的新控件,也非谷歌I ...
- Delphi XE2 新控件 布局Panel TGridPanel TFlowPanel
Delphi XE2 新控件 Firemonkey 布局Panel Windows平台VCl TGridPanel TFlowPanel FMX 跨平台 TLayout TGridLayout TFl ...
- Windows Phone 8.1 控件
如果你已经开始了 Windows Phone 8.1 的学习,就会发现许多在 8.0 下的控件在 8.1 中都发生了变化,以下就谈谈几个 8.1 下的新控件以及与 8.0 控件的改变. 1. Text ...
- 一个Activity掌握Design新控件 (转)
原文地址:http://blog.csdn.net/lavor_zl/article/details/51295364 谷歌在推出Android5.0的同时推出了全新的设计Material Desig ...
- 一个Activity掌握Android5.0新控件 (转)
原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常 ...
- 一个Activity掌握Android4.0新控件 (转)
原文地址:http://blog.csdn.net/lavor_zl/article/details/51261380 谷歌在推出Android4.0的同时推出了一些新控件,Android4.0中最常 ...
- [深入浅出Windows 10]分屏控件(SplitView)
4.18 分屏控件(SplitView) 分屏控件(SplitView)是Windows 10新增的控件类型,也是Windows 10通用应用程序主推的交互控件,通常和一个汉堡按钮搭配作为一种抽屉式菜 ...
随机推荐
- 整理一些好用的css, javascript资源网站等
CSS: CSS3信息:http://www.css3.info/ css3生成器:http://css3generator.com/ css3 cross brower生成器:http://css3 ...
- python使用websocket简单组建聊天室
server端 ###websocket_server### import socket import threading sock = socket.socket(socket.AF_INET, s ...
- js获取当前时间是本年的第几天第几周
let d1 = new Date() let d2 = new Date() d2.setMonth(0) d2.setDate(1) let rq = d1-d2 let s1 = Math. ...
- hdoj1013(数根,大数,九余数算法)
Digital Roots Problem Description The digital root of a positive integer is found by summing the dig ...
- Android 支付宝/微信支付结果判断
微信支付结果码 private static final int PAY_OK = 0; //交易成功 private static final int PAY_ERR = -1; //交易失败 pr ...
- e-olymp Problem8352 Taxi
作为我在这个OJ玩了一下午的终结吧. 水题一道,阅读理解OJ. 传送门:点我 Taxi At the peak hour, three taxi buses drove up at the same ...
- 100-days: Seven
Title: Can baiju, China's sorghum firewater, go global? sorghum n. 高粱 firewater n. 烈酒 Baijiu——a broa ...
- 微信小程序编译包的获取与解压——在手机中获取小程序编译包wxapkg
准备工作: 微信关注需要下载编译包的小程序,然后点进去看一下,微信就会自动下载相应的编译包到手机上了. 获取小程序编译包: 据说root手机可以直接在手机的文件管理中查找wxapkg文件,自己尝试了下 ...
- 【python】理解循环:for,while
先看下for结构: #!/usr/bin/python # -*- Coding:UTF-8 -*- for i in range(1): print i 输出: 0 输入和输出: #!/usr/bi ...
- Redis能干啥?细看11种Web应用场景[转]
下面列出11种Web应用场景,在这些场景下可以充分的利用Redis的特性,大大提高效率. 1.在主页中显示最新的项目列表. Redis使用的是常驻内存的缓存,速度非常快.LPUSH用来插入一个内容ID ...