繁体   English   中英

在 C#/UWP 中获取“应用程序显示名称”

[英]Get 'Application Display Name' in C# / UWP

根据文档我可以使用这个: Windows.ApplicationModel.AppDisplayInfo.DisplayName

但我收到错误: An object reference is required for the non-static field, method, or property 'AppDisplayInfo.DisplayName

我无法添加“AppDiagnostics”功能或使用包显示名称,这似乎是最常见的解决方案。 是文档错误还是我做错了什么?

如果您只想要当前项目的DisplayName ,则可以使用以下代码而无需声明appDiagnostics功能:

string displayName = Windows.ApplicationModel.AppInfo.Current.DisplayInfo.DisplayName;

如果您想要所有正在运行的应用程序的DisplayName ,包括 UWP 应用程序、Win32 应用程序、系统服务等,您需要先在 manifest 中添加appDiagnostics功能。

检查添加appDiagnostics功能的步骤:

  1. Package添加xmlns:rescap并在rescap中添加IgnorableNamespaces 然后,在Capabilities添加appDiagnostics功能。
    <Package   xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" 
    IgnorableNamespaces="uap mp rescap">
      <Capabilities>
        <rescap:Capability Name="appDiagnostics" />
      </Capabilities>
    </Package>
  1. appDiagnostics能力属于受限能力,需要获得用户的许可。 首次调用AppDiagnosticInfo.RequestInfoAsync()等诊断 API 时将触发用户同意提示。 或者用户可以打开设置面板,找到隐私选项并设置应用程序诊断

在此处输入图片说明

请注意,如果用户拒绝权限,则 API 将仅返回有关当前应用程序的信息。

  1. 添加以下代码以查看所有正在运行的应用程序的DisplayName
var list = await AppDiagnosticInfo.RequestInfoAsync();
foreach (var info in list)
{
    string name = info.AppInfo.DisplayInfo.DisplayName;
}

如果有人需要它用于 WinUI 3

Windows.ApplicationModel.Package.Current.DisplayName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM