【问题标题】:Get 'Application Display Name' in C# / UWP在 C#/UWP 中获取“应用程序显示名称”
【发布时间】:2021-03-06 13:44:24
【问题描述】:

According to the docs我可以用这个:Windows.ApplicationModel.AppDisplayInfo.DisplayName

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

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

【问题讨论】:

    标签: c# windows uwp


    【解决方案1】:

    如果有人在 WinUI 3 中需要它

    Windows.ApplicationModel.Package.Current.DisplayName
    

    【讨论】:

    • 如果我没记错的话 - 我不能使用“包”显示名称,因为它与“应用程序”显示名称不同(应用程序标题栏中显示的内容)。具体记不太清了
    【解决方案2】:

    如果你只想要你当前项目的DisplayName,你可以使用下面的代码而不需要声明appDiagnostics能力:

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

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

    查看添加appDiagnostics功能的步骤:

    1. Package 中添加xmlns:rescap,在IgnorableNamespaces 中添加rescap。然后,在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 能力为受限能力,需要获得用户的许可。在第一次调用诊断 API(如AppDiagnosticInfo.RequestInfoAsync())时,将触发用户同意提示。或者用户可以打开设置面板,找到隐私选项并设置应用诊断

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多