August 25th, 2023

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

Mia Wu
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 Ramoswebwarrior-wsmolesmoke 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

  • 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

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