August 25th, 2023
0 reactions

在 .NET 8 Preview 7 中推出 .NET MAUI:键盘加速键

Partner Technical Advisor

 David Ortinau   原文:Announcing .NET MAUI in .NET 8 Preview 7: Keyboard Accelerators – .NET Blog (microsoft.com)

 

.NET MAUI 现已在 .NET 8 Preview 7 中推出,它引入了键盘加速键以及更多的修复和改进。这是我们发布.NET 8候选版本和正式发布 (GA) 版本之前的最后一个预览版本。随着发布日期的公布,我们将像往常一样在 .NET Conf 上庆祝该版本的发布。 请在2023 年 11 月 14 日至 16 日期间与我们一起庆祝 .NET 8 发布! 

版本 7.0.92 是 .NET 7 的最新服务版本。在此期间,我们重点关注 .NET 8,使其成为最佳版本。 从 RC1 的下一个版本开始,您将获得上线支持许可证。 我们鼓励每个人从现在开始考虑使用 .NET 8 版本。 

这个版本是由 25 位贡献者(包括bot)共同完成的。 让我们向他们所有人,特别是首次贡献者 Lehonti Ramos、webwarrior-ws、molesmoke 和 Aaron Galuzzi,致敬 做得好! 我们感谢每个人的贡献。 如果您有兴趣提供帮助,请参阅我们的。贡献指南。 

桌面键盘加速键

键盘加速键使您能够将键盘快捷键分配给任何菜单项(无论是否可见),并将它们附加到任何 UI 元素。 例如,此页面有一个菜单窗口,您可以使用 MenuItem.Accelerator 附加属性向其中的菜单项添加加速键: 

<ContentPage.MenuBarItems>
    <MenuBarItem Text="File">
        <MenuFlyoutItem Text="Preferences"
            Command="{Binding PreferencesCommand}"
        />
    </MenuBarItem>
    <MenuBarItem Text="Products">
        <MenuFlyoutItem 
            x:Name="AddProductMenu"
            MenuItem.Accelerator="ctrl+a"
            Text="Add Product"
            Command="{Binding AddProductCommand}"
        />
        <MenuBarItem Text="Add Product Category"/>
    </MenuBarItem>
</ContentPage.MenuBarItems>

如果您想要在C#代码中添加加速键而不是在XAML实现加速键,则可以使用如下代码: 

MenuItem.SetAccelerator(AddProductMenu, Accelerator.FromString("ctrl+a"));

现在,当这些按键被按下时,AddProductCommand 就会触发,就像用户点击或单击菜单项一样。 有关支持的修饰符按键列表,请参阅 Accelerator.FromString 方法。 

.NET MAUI 中修复和改进的内容 

该版本的主要重点是bug修复和质量改进。 有关完整的更改,请查看 8.0.0-preview.7.8842 发行说明。 以下是要点: 

  1. 内存泄漏解决方案: 
    • 各种 UI 控件(包括不同平台(例如 iOS、Android 和 Windows)上的 Border、Editor 和 Entry)中的多个内存泄漏问题得到了解决。 这些修复可确保改进内存管理和应用程序稳定性。#15946, #15614, #16045, #16101, #16348, #16349 
  2. 增强的UI控制功能: 
    • Border、WebView 和 Entry 等 UI 控件已针对不同平台(iOS、Android、Windows)上的行为、性能和自定义选项进行了更新。 这些增强功能有助于提供更加用户友好且功能丰富的体验。 #14740, #15881, #15585, #14846, #16215, #15458, #16270 
  3. 特定于平台的改进: 
    • 每个主要平台(iOS、Android、Windows)从内存泄漏修复到性能增强都进行了针对性的改进,确保应用程序在不同环境下平稳高效地运行。#15734, #16145, #16032 
  4. Bug修复和改进: 
    • 从外观问题(Shell TabBar)到功能(ListView 中的 SelectedItemChanged)等多个bug,已在不同平台上得到解决。 这些修复有助于打造更加完美且无bug的应用程序 。 #16128, #16241, #16275, #14663, #16057, #16116, #16174, #16248, #15099, #15459 
  5. 输入和交互增强: 
    • 对用户输入和交互功能进行了改进,例如文本框中的光标保留、菜单键加速键和 InputTransparent 行为排列。 这些更新增强了用户参与度和应用程序可用性。#15799, #15835  

附加发行说明: 

 如何更新 

现在,Windows 上的 Visual Studio 2022 已经包含 .NET 8 预览和 .NET MAUI 预览版工作负载。 请下载最新的预览版本(17.8 Preview 1),选择.NET Multi-platform App UI工作负载,然后选中可选组件“.NET MAUI(.NET 8 Preview)” 。 

当您同时安装 .NET 8 Preview 6 和 7 时,在Mac上为 Apple 平台构建 程序 会有一个已知问题。 请查看已知问题以了解详细信息和解决步骤。 

如果您想要在macOS上使用Visual Studio for Mac进行开发,您可以在“Preferences”中启用 .NET 8 预览功能并从安装程序安装 .NET 8 Preview 7。 

Enable .NET 8 in Visual Studio 2022 for Mac

下载 .NET 8 Preview 7 安装程序,然后从命令行安装 .NET MAUI: 

dotnet workload install maui

 下一步计划? 

我们准备在下一个 .NET 8 版本中为新版本的 iOS、iPadOS、macOS、Mac Catalyst、tvOS 和 CarPlay 引入 Xcode 15 支持。我们预计 .NET 8 于 11 月发布时将使用稳定版本的Xcode 15。 

开发人员提示:我建议通过从 Apple 开发者门户明确下载和选择版本来管理 Xcode 版本,而不是依赖 App Store,因为 App Store 可能会自动更新并破坏兼容性。 当维护 Xcode 的并行版本时,您可能需要使用 Xcodes.app 之类的东西。

欢迎反馈 

我们感谢您对 .NET MAUI 的反馈和贡献。 您可以在GitHub存储库上报告问题、建议功能或提交请求。 您还可以加入我们的 Discord 服务器。 

感谢您的支持,祝您编码愉快! 

Author

Mia Wu
Partner Technical Advisor

6 comments

Sort by :
  • yinhx

    Accelerator 在这里是快捷键,不是加速器

      • yinhx

        快捷键,姐🤣

      • Mia WuMicrosoft employee Author

        按照原文应该是加速键的意思哦

      • yinhx

        谢谢。我确实混淆了加速键和快捷键的概念
        快捷键(keyboard shortcuts)包括访问键(access keys)和加速键(keyboard accelerators)
        Access keys 是用 Alt 键快速访问功能区按钮
        Keyboard accelerators 是面向开发者的概念,指 access keys 之外的 keyboard shortcuts。面向用户时,一般笼统的叫做 keyboard shortcuts。这个词没有明确的中文翻译

      • Mia WuMicrosoft employee Author

        由于很多概念都是来源于英文,正如您所说的,很难找到明确的中文解释。我们会尽量以普适、简单的方式进行翻译,希望能更好的让读者理解。感谢您的反馈,您的认真阅读是我们翻译的动力!