Windows 8.1 应用再出发 - 几种更新的控件

简介: 原文:Windows 8.1 应用再出发 - 几种更新的控件Windows 8.1 除了新增了很多很有用的控件外,还对一些控件做出了更新。接下来我们一起对这些更新的控件一一做出讲解。 1. FlipView 更新 翻转视图控件,在应用中常用作图片等内容的翻页/滑动显示。
原文: Windows 8.1 应用再出发 - 几种更新的控件

Windows 8.1 除了新增了很多很有用的控件外,还对一些控件做出了更新。接下来我们一起对这些更新的控件一一做出讲解。

1. FlipView 更新

翻转视图控件,在应用中常用作图片等内容的翻页/滑动显示。用户可以浏览多个项目,每次显示一个。下面我们来看看FlipView控件的简单用法:

    <FlipView Width="300" Height="300">
        <FlipViewItem>
            <TextBlock Text="1" FontSize="70" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </FlipViewItem>
        <FlipViewItem>
            <TextBlock Text="2" FontSize="70" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </FlipViewItem>
        <FlipViewItem>
            <TextBlock Text="3" FontSize="70" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </FlipViewItem>
    </FlipView>

  

在上面的图中,我们看到,翻转视图中有三个项目:1/2/3,每次滑动或点击左右键可以切换显示一个项目。那么Windows 8.1 针对它的更新是什么呢?

我们知道,FlipView有三种方式来切换显示项目,基于滑动触控、基于左右按钮点击和基于编程。在Windows 8中,当用户通过滑动触控切换项目时,FlipView项目切换会进行平滑的滚动。而通过点击或编程时,不会出现平滑的滚动,内容只是简单的切换显示。而Windows 8.1 为FlipView控件添加了UseTouchAnimationsForAllNavigation属性,当设置为true时,基于触控、按钮和编程方式的切换均会出现平滑滚动的动画,这样就保证了在各种方式的切换导航中一致的用户体验。

 

2. 多种控件添加Header属性

有些控件在使用中通常会附带标题,来描述控件中值的意义。而在Windows 8 中我们需要自己定义布局来添加标题,这样不仅增加了完成布局代码的时间,还在一定程度上破坏了代码的结构。而Windows 8.1 中为这些控件添加了Header 和 HeaderTemplate 属性,以让我们更快捷的完成标签的设置。具有这一新特性的控件有:

  • ComboBox
  • Slider
  • DatePicker
  • TimePicker
  • TextBox
  • PasswordBox
  • RichEditBox

 下面我们就分别以Slider 和 TextBox为例,来演示一下Header 和 HeaderTemplate属性添加方法。

Slider:

    <Slider Header="FontSize" VerticalAlignment="Center" Width="300" FontSize="30" Value="60"/>

TextBox:

        <TextBox Grid.Column="1" FontSize="40" Height="100" Width="400">
            <TextBox.HeaderTemplate>
                <DataTemplate>
                    <Button Content="Click to reset." FontSize="22"/>
                </DataTemplate>
            </TextBox.HeaderTemplate>
        </TextBox>

 

3. PlaceholderText

占位符文本,Windows 8.1 将这个属性添加到很多包含文本的控件中。如果控件中不想显示默认选项或留空,我们就可以添加占位符来提示用户进行输入或选择。这些控件包括:

  • ComboBox
  • PasswordBox
  • RichEditBox
  • SearchBox
  • TextBox

我们分别以ComboBox 和 PasswordBox为例,分别演示文本选择控件和输入控件添加占位符的方法:

ComboBox:

        <ComboBox PlaceholderText="Pick a country" Header="Countries" HorizontalAlignment="Center" VerticalAlignment="Center" Width="300" FontSize="25">
            <x:String>China</x:String>
            <x:String>Korea</x:String>
            <x:String>Japan</x:String>
        </ComboBox>

PasswordBox:

    <PasswordBox PlaceholderText="Enter the password" Header="Password" Grid.Column="1" Height="90" Width="300" FontSize="25"/>

 

4. WebView 更新

Windows 8.1 针对WebView 控件修复了很多问题并添加了新功能,包括:

(1). 支持在WebView控件上层显示其他XAML控件。这一更新主要修复了Windows 8 下,WebView控件在控件叠加显示时的异常。这也是我自己在Windows 8开发中遇到过的很想吐槽的问题之一。我们来看看修复前后的对比情况。

        <Grid Grid.Row="1">
            <WebView Width="350" Height="350" Source="http://www.google.com.hk"/>
            <Border Width="400" Height="400" Background="Black" Canvas.ZIndex="1" Opacity="0.6"/>
        </Grid>

如上代码,我们想实现的效果是,黑色半透明的Border遮盖住WebView。而在Windows 8(左图) 和 Windows 8.1(右图) 中的运行效果分别是:
      

(2). 支持使用RenderTransform属性来转换、缩放、扭曲和旋转WebView控件。我们来看下面的例子:

        <WebView Width="350" Height="350" Source="http://www.google.com.hk">
            <WebView.RenderTransform>
                <RotateTransform Angle="45"/>
            </WebView.RenderTransform>
        </WebView>

我们想把WebView按顺时针旋转45度,来看Windows 8(左图) 和 Windows 8.1(右图) 中的效果图:
     

(3). 支持在WebView控件中使用Opacity属性。这也算是Windows 8 中控件的吐槽点之一了,当布局需要一个整体的透明度时,WebView就显得格格不入。 好在Windows 8.1 “及时”进行了修复,这一属性实现和效果较为简单,大家可以自己做一下测试。

(4). 用于基本导航操作的新 API 元素:GoBack、GoForward、Stop、Refresh、CanGoBack 和 CanGoForward。使用这些 API 可以为应用添加典型的 Web 浏览功能。

(5). NavigateWithHttpRequestMessage 方法,用于通过 POST 请求和 HTTP 头导航到 URI。

(6). NavigateToLocalStreamUri 方法,用于通过自定义解析程序加载本地内容。

(7). 对导航和内容加载状态进行响应的新事件:NavigationStarting、ContentLoading、DOMContentLoaded、NavigationCompleted、FrameNavigationStarting、FrameContentLoading、FrameDOMContentLoaded 和 FrameNavigationCompleted。

(8). 对可能出现问题的情况进行响应的新事件:LongRunningScriptDetected、UnsafeContentWarningDisplaying 和 UnviewableContentIdentified。

(9). Focus 方法,用于为 WebView 设置输入焦点。

(10). CapturePreviewToStreamAsync 方法,用于获取托管内容的预览图像。

(11). 异步方法,用于调用脚本并以数据包的形式获取选择的内容以便进行共享:InvokeScriptAsync 和 CaptureSelectedContentToDataPackageAsync。

(12). 两个新属性,用于获取文档标题及设置默认背景颜色:DocumentTitle 和 DefaultBackgroundColor。这两个属性还是很有用处的,比如我们想在页面标题显示WebView加载网页的标题,或者想修改网页的背景色以更符合整个页面的颜色搭配,以免白色网页背景过于突兀时,它们就派上用场了。

同时,Windows 8.1 还弃用了 Windows 8 中WebView的一些API:

(1). 弃用LoadCompleted 和 NavigationFailed, 改用 NavigationCompleted。

(2). 弃用InvokeScript,改用 InvokeScriptAsync。

(3). 弃用DataTransferPackage 和 DataTransferPackageProperty,改用 CaptureSelectedContentToDataPackageAsync。

(4). 不再支持 AllowedScriptNotifyUris、AnyScriptNotifyUri 和 AllowedScriptNotifyUrisProperty 。要在调用 window.external.notify 时,允许外部网页引发 ScriptNotify 事件,你必须在应用清单文件 (Package.appxmanifest) 的内容URI部分纳入该页面的 URI。

我们不难看出,Windows 8.1 中针对WebView 有大幅度的修复和更新(Windows 8 的WebView确定不是临时工做的吗?)。

 

到这里,我们就把Windows 8.1 中几个比较大的控件更新介绍完了。大家如果想更完整的了解更新的范围,可以 到这里 查看。谢谢大家。

目录
打赏
0
0
0
0
216
分享
相关文章
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
103 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
Electron-builder 是如何打包 Windows 应用的?
本文首发于微信公众号“前端徐徐”,作者徐徐深入解析了 electron-builder 在 Windows 平台上的打包流程。文章详细介绍了 `winPackager.ts`、`AppxTarget.ts`、`MsiTarget.ts` 和 `NsisTarget.ts` 等核心文件,涵盖了目标创建、图标处理、代码签名、资源编辑、应用签名、性能优化等内容,并分别讲解了 AppX/MSIX、MSI 和 NSIS 安装程序的生成过程。通过这些内容,读者可以更好地理解和使用 electron-builder 进行 Windows 应用的打包和发布。
331 0
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
103 0
|
8月前
|
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
339 4
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
167 1
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
778 3
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
113 1
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
136 0
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
199 0
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)