zoukankan      html  css  js  c++  java
  • Windows 8.1中WinRT的变化(二)——新增功能

    首先我们来看看现有控件中新增的功能:

    FlipView编程方式切换时支持平滑滚动:

    在Windows8中,FlipView在用手触控翻页的时候是有动画效果的,但当我们使用键盘或代码编程翻页时,却没有这个待遇,只能看到硬切换,没有动画效果。

    在Windows 8.1中,对这项有了改进,增加你一个 UseTouchAnimationsForAllNavigation 属性,这样当我们使用编程方式切换时,也能看到动画效果。

    不过,这个功能做得仍然不够彻底,即使打开UseTouchAnimationsForAllNavigation 属性,当我们在连续页面间切换时,能看到动画效果。但如果在不连续的页面间切换时:如第一页切换到第三页,依然是没有动画效果的。

    ComboBox、DatePicker、TimePicker、Slider 和 Edit 支持标签

    ComboBox、DatePicker、TimePicker、Slider 和 Edit控件多了一个Header属性,可以实现标签效果,要方便许多了。

        

     另外,也可以通过HeaderTemplate设置为比较复杂的模板。

        

    输入框支持水印

    ComboBox、PasswordBox、RichEditBox、SearchBox、TextBox等几种输入框都支持水印了(效果见上图)。这倒是一个比较实用的更新。

    文本显示的改进

    • MaxLines 属性:文本控件将调整其高度,确保无论字体大小、字体样式或文本长度如何,显示的行数都不会超过指定的行数。
    • SelectionHighlightColor 属性:可以自定义高亮文字的颜色。
    • TextWrapping.WrapWithOverflow:文本溢出时会继续往后写,类似Excel的 效果。
    • TextTrimming.Clip:文本溢出后后使用像素级裁剪,呈现半个字。
    • TextTrimming.CharacterEllipsis:文本溢出后显示省略号

    ScrollViewer 支持冻结表头式滚动

    ScrollViewer中增加了表头模板(TopHeaderLeftHeader 和 TopLeftHeader),可以很方便的实现类似Excel中的冻结效果,这个非常给力。

    然后我们再来看看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 方法通过编程方式更新源。

    导航的改进:

    新的 Frame 属性 BackStackForwardStackBackStackProperty 和 ForwardStackProperty。使用这些属性通过添加或删除 PageStackEntry 对象,以编程方式更改前后导航堆栈。这在很多情景下都十分有效,例如在用户登录后从导航历史记录中删除登录页,或者在使用不同的激活合约重新启动该应用时清除导航堆栈。

    使用 NavigationTransitionInfo 参数值的 Frame.Navigate 重载。通过使用此重载通过特定的动画过渡(而非该页面的 XAML 中定义的任何过渡方式)导航到某个页面。你还可以通过 NavigationEventArgs 和NavigatingCancelEventArgs 类访问导航事件处理程序中的参数值。

    NavigatingCancelEventArgs.Parameter 属性。当你需要根据导航参数值取消导航时,请使用此属性。

    文件相关API:

     StorageLibrary 类:在Windows 8中,如果用户需要打开库之外的文件,每次都要调用都浏览文件对话框,十分繁琐。现在可以通过StorageLibrary 类将一个文件夹添加到库中,这样程序就可以直接访问该文件夹了。

     GetParentAsync 方法:这个方法可以方便我们访问父文件夹,当然,前提是你得有访问权限。

    IsEqual 方法:可以实现两个文件对象的比较,可以解决那些没有路径的文件对象的比较问题。

    TryGetItemAsync 方法:当获取文件失败时,可以返回NULL,终于可以抛弃那种每次获取文件都要try-catch的蛋疼写法了。

    NeighboringFilesQuery 属性:可以打开文件时实现打开相关文件的功能。例如,打开视频文件时,同时打开字幕。

    多媒体:

    新增了一个貌似很强大的 SystemMediaTransportControls,现在没有空去体验它。

    网络:

    在新增的名字控件Windows.Web.Http下也有了一个HttpClient,用于代替之前的HttpClient,不过貌似没有看到太大的差别。

    另外,新增的新的 BackgroundTransferGroup 类貌似比较强大,有空的时候试用一下。

    其它:

    VisualStudio的XAML设计器健壮和智能了不少,这点非常值得赞扬。XAML设计器中也支持使用Json作为SampleData了,本身这是个非常好的功能,不过蛋疼的是这么好的功能竟然不支持更加强大的WPF。

    打包格式支持捆绑包,对于那些不能编成AnyCpu的程序,可以把不同平台下的程序捆绑后一起发布发布。不过感觉意义不大。

  • 相关阅读:
    JavasScript 实现二分法快排注意点
    JS的面向对象二(通过构造函数的方式)
    JS的面向对象一(通过构造函数的方式)
    leetcode.977_有序数组的平方
    leetcode_38.报数
    leetcode_20.c++有效的括号
    leetcode_21.c++合并两个有序列表
    leetcode_最长公共前缀
    T2_两数相加
    T1_两数之和
  • 原文地址:https://www.cnblogs.com/TianFang/p/3386935.html
Copyright © 2011-2022 走看看