Получить ApplicationIcon из кода в NET Core 3.0 - PullRequest
0 голосов
/ 28 февраля 2019

В .csproj я назначаю значок своему приложению .NET Core 3.0:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <ApplicationIcon>C:\temp\myicon.ico</ApplicationIcon>
  </PropertyGroup>

</Project>

Значок устанавливается для сгенерированного exe-файла и отображается в диспетчере задач / проводнике файлов.

Как я могу получить доступ к этой иконке из кода?Я не хочу извлекать его из сгенерированного exe-файла или добавлять значок дополнительного ресурса.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019
//We can use this statement.

using System.Drawing;
using System.Reflection;

 static void Main(string[] args)
        {
            try
            {       
                Icon appIcon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);                
            }
            catch(ArgumentException ae) 
            {
                //handle
            }     
0 голосов
/ 28 февраля 2019

вы можете извлечь, как это

using System;
using System.Drawing;         //For Icon
using System.Reflection;      //For Assembly

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                //Gets the icon associated with the currently executing assembly
                //(or pass a different file path and name for a different executable)
                Icon appIcon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);                
            }
            catch(ArgumentException ae) 
            {
                //handle
            }           
        }
    }
}
...