Microsoft发布Windows UI Library 3 Preview 4

WinUI是一个用户界面层,其中包含用于构建Windows应用程序(台式机和UWP)的现代控件和样式。作为Windows中的本机UI层,它体现了Fluent Design,使每个Windows应用程序都具有用户期望的优美感觉。
WinUI 3是WinUI框架的最新版本,将于今年晚些时候发布。它极大地将WinUI扩展为完整的UX框架,从而使WinUI可用于所有类型的Windows应用程序-从Win32到UWP-用作UI层。准备就绪后,每个Windows应用程序都将能够利用其运行的现代控件,而不管它们运行在哪个Windows版本上。

WinUI 3 Preview 4今天发布,是一个稳定的预览版本,其中包括一些关键的错误修复以及对该框架的其他常规改进。

预览4中引入的功能

  • 与WinUI 2.5的奇偶校验(包括InfoBar控件,ProgressRing和NavigationView中的新功能以及错误修复)
  • 自定义标题栏功能:新的Window.ExtendsContentIntoTitleBar和Window.SetTitleBar API,允许开发人员在桌面应用程序中创建自定义标题栏。
  • VirtualSurfaceImageSource支持

过去的WINUI 3预览版中引入的新功能

WinUI 3 Preview 1-3中引入了以下功能,并在WinUI 3 Preview 4中继续受支持。

  • 能够使用WinUI创建桌面应用程序,包括  用于Win32应用程序的.NET 5
  • 径向渐变画笔
  • TabView更新
  • 黑暗主题更新
  • WebView2的改进和更新
    • 支持高DPI
    • 支持窗口大小调整和移动
    • 更新以针对最新版本的Edge
    • 不再需要引用特定于WebView2的Nuget包
  • 交换链面板
  • MRT核心支持
    • 这样可以使应用在启动时更快,更轻便,并提供更快的资源查找。
  • ARM64支持
  • 在应用程序内部和外部拖放
  • RenderTargetBitmap(当前仅XAML内容–没有SwapChainPanel内容)
  • 自定义光标支持
  • 线程外输入
  • 改善我们的工具/开发人员经验:
    • 实时可视化树,热重载,实时属性资源管理器和类似工具
    • WinUI 3的Intellisense
  • 开源迁移所需的改进

有关WinUI 3的优点和WinUI路线图的更多信息,请参见 GitHub上的 Windows UI库路线图。

预览4中修复的错误列表

以下是自预览版3以来团队已修复的面向用户的错误列表。围绕稳定性和改进测试的工作也很多。

  • 此版本采用了新版本的CS / WinRT和Windows SDK,该版本修复了以下错误:
    • 使用{Binding}绑定到URI属性时崩溃
    • C#/ WinRT Marshal函数无法与.NET 5正确互操作
  • 在Windows Insider Builds上运行时WinUI 3崩溃
    • 感谢多个社区贡献者在GitHub上报告此错误!
  • WebView2不会将主机应用的语言/语言环境应用于CoreWebView2Environment
  • Windows社区工具包DataGrid控件在开始/滚动条出现时使应用程序崩溃
    • 感谢多个社区贡献者在GitHub上报告此错误!
  • 当显示模式更改时,页面呈现进入错误状态
  • 在CalendarView中使用Language ComboBox时崩溃
  • WinUI 3桌面:无法从WebView2中跳出
  • WinUI 3桌面:具有派生的TreeViewNodes的TreeView崩溃
  • WinUI 3 Desktop:无法在ContentDialog中的TextBox中输入文本
  • WinUI 3桌面:ALT和F6不起作用
  • 旧的已移除SwapChainPanel呈现在新的SwapChain之上
  • WinUI 3 Desktop:无法使用触控板滚动
  • 在同一线程上对多个窗口使用NavigationView控件时崩溃
  • 辅助功能问题:在WinUI桌面应用程序启动时显示焦点
  • 在DataGrid中滚动时访问冲突
  • WinUI 3桌面:选项卡循环不起作用
  • 在带有WinUI Xaml Islands的桌面应用程序中,在GridView上进行拖放操作失败
  • 可访问性问题:在WinUI 3桌面上无法使用PageUp / PageDown键滚动
  • WebView2的视口大小错误
  • 打开MenuFlyout后,单击时WebView2崩溃
  • WinUI 3 Desktop:尝试关闭DropDownButton或SplitButton的弹出按钮会导致应用崩溃
  • WebView2:右键单击鼠标会导致崩溃
  • 单击ToggleSplitButton导致应用程序崩溃
  • WinUI 3桌面:任务栏上可见空的DesktopWindowXamlSource窗口
  • WinUI 3桌面:DataGrid不显示
  • WinUI 3 Desktop:无法将文件拖放到网格
  • WinUI 3桌面:WinXP 3 Preview 2中ItemsRepeater崩溃
  • 更新绑定时抛出AccessViolationException
  • WinUI 3 Desktop:应用程序在滚动NavigationView时崩溃
  • 动态添加或删除其ItemsSource集合中的项目时,ItemsControl不会更新。
  • 如果启用了C ++一致性模式,则在App.xaml.gh中编译错误C2760

局限性和已知问题

Preview 4版本只是预览版,其中包含错误,局限性以及与台式机应用程序有关的场景的其他问题,这些都是特别新的。

以下各项是WinUI 3 Preview 4的一些已知问题。

开发者工具

  • 仅支持C#和C ++ / WinRT应用程序
  • 桌面应用程序支持.NET 5和C#9,并且必须打包在MSIX应用程序中
  • UWP应用支持.NET Native和C#7.3
  • 开发人员工具和Intellisense在Visual Studio 16.8版中可能无法正常工作。
  • 不支持XAML设计器
  • 不支持新的C ++ / CX应用程序,但是,您现有的应用程序将继续运行(请尽快移至C ++ / WinRT)
  • 桌面应用程序中对多个窗口的支持正在进行中,但尚未完全稳定。
    • 如果您发现新问题或具有多窗口行为的回归,请在我们的存储库中提交错误。
  • 不支持未打包的桌面部署
  • 使用F5运行桌面应用程序时,请确保您正在运行打包项目。在应用程序项目上按F5键将运行一个未打包的应用程序,WinUI 3尚不支持该应用程序。

缺少平台功能

  • Xbox支持
  • HoloLens支持
  • 窗口弹出
    • 更具体地说,无论属性值如何,该 ShouldConstrainToRootBounds 属性始终像设置为一样起作用 true
  • 上墨支持
  • 亚克力
  • MediaElement和MediaPlayerElement
  • MapControl
  • SwapChainPanel和非XAML内容的RenderTargetBitmap
  • SwapChainPanel不支持透明度
  • Global Reveal使用后备行为,坚固耐用
  • 此版本不支持XAML群岛
  • 第三方生态系统库将无法完全运行
  • 输入法无效

已知的问题

  • Alt + F4不会关闭桌面应用程序窗口。
  • 由于CoreWindow的更改 ,以下WinRT API可能不再 按预期与桌面应用程序一起使用 :
    • ApplicationView 并且所有相关的API将不再起作用。
    • CoreApplicationView 并且所有相关的API将不再起作用。
    • GetForCurrentView 例如,可能不支持所有 API  CoreInputView.GetForCurrentView
    • CoreWindow.GetForCurrentThread 现在将返回null。

    有关在WinUI 3桌面应用程序中使用WinRT API的更多信息,请参阅 桌面应用程序可用的Windows运行时API。

  • Windows.UI.ViewManagement.UISettings.ColorValuesChanged事件 在桌面应用程序中不再受支持。如果您使用它来检测Windows主题中的更改,则可能会导致问题。
  • 此版本包含一些实验性API。这些没有经过团队的彻底测试,可能有未知的问题。 如果您遇到任何问题,请 在我们的存储库中提交错误。
  • 以前,要获取CompositionCapabilities实例,您可以调用 CompositionCapabilites.GetForCurrentView()。但是,此调用返回的功能 不 依赖于视图。为了解决和反映这一点,我们在此版本中删除了静态的GetForCurrentView(),因此现在您可以 直接创建 CompositionCapabilties对象。
  • 对于C#UWP应用:WinUI 3框架是一组WinRT组件,可以从C ++(使用C ++ / WinRT)或C#中使用。使用C#时,有两种版本的.NET,具体取决于应用程序的型号:在UWP应用程序中使用WinUI 3时,您使用的是.NET Native。在桌面应用程序中使用时,您使用的是.NET 5(和C#/ WinRT)。在UWP中将C#用于WinUI 3应用程序时,与WinUI 3桌面应用程序或C#中的C#相比,API名称空间有所不同WinUI 2应用程序:某些类型在 Microsoft 名称空间而不是 System 名称空间中。例如, INotifyPropertyChanged 接口不是在 System.ComponentModel 名称空间中,而是在Microsoft.UI.Xaml.Data 名称空间中,这 适用于:
    • INotifyPropertyChanged (和相关类型)
    • INotifyCollectionChanged
    • ICommand

    该 System 命名空间的版本仍然存在,但不能与WinUI 3.这意味着使用 ObservableCollection 不工作的,是WinUI 3 C#应用程序UWP。有关解决方法,请参阅 CollectionsInterop样品 在 XAML控件库样本。

接下来会发生什么?

开发人员可以查看Microsoft的详细功能路线图, 以了解何时将特定功能引入WinUI 3。

安装WINUI 3 PREVIEW 4

WinUI 3 Preview 4包括Visual Studio项目模板,以帮助您开始使用基于WinUI的用户界面来构建应用程序,以及一个包含WinUI库的NuGet程序包。要安装WinUI 3 Preview 4,请按照下列步骤操作。

Windows社区工具包

如果您使用的是Windows Community Toolkit,请 下载最新版本。

除了 局限性和已知问题外,使用WinUI项目构建应用程序类似于使用XAML和WinUI 2.x构建UWP应用程序。因此, 适用于UWP应用程序和  Windows SDK中Windows.UI WinRT名称空间的大多数 指导文档。

有关WinUI项目模板入门的更多信息,请参见以下文章:

  • WinUI 3桌面应用程序入门
  • 适用于UWP应用的WinUI 3入门

此版本的API参考文档即将发布,但与此同时,开发人员可以查看Preview 3的WinUI 3 API参考文档。

如果使用WinUI 3 Preview 3创建了项目,则可以将项目升级为使用Preview4  。有关详细说明,请参见 WinUI GitHub存储库。

为了利用WinUI 3 Preview 4中添加的最新工具功能(如热重载,Live Visual Tree和Live Property Explorer),必须将Visual Studio的最新预览版本与最新的WinUI 3预览一起使用,并确保启用Visual Studio预览功能中的WinUI工具,如此处的说明中所述 。

有关 包含所有WinUI 3 Preview 4控件和功能的示例应用程序,请参见XAML控件库的 WinUI 3 Preview 4分支。

winui3xamlcontrolsgallery
WinUI 3 Preview 4 XAML控件库应用程序的示例

该WinUI 3预览版旨在进行早期评估,并收集开发人员社区的反馈。它应该 被用于生产应用。微软将继续在2021年之前发布WinUI 3的预览版,然后在2021年3月发布首个受支持的正式版本。

请使用 WinUI GitHub存储库 提供反馈并记录建议和问题。

未经允许不得转载:励志言 » Microsoft发布Windows UI Library 3 Preview 4

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏