Работа с & ldquo; адом Xerces & rdquo; в Java / Maven?

Он хранится как ресурс в сборке System.Windows.Forms.dll. Вы можете получить копию с отражением как folow:

public static class FormUtils
{
    private static Icon _defaultFormIcon;
    public static Icon DefaultFormIcon
    {
        get
        {
            if (_defaultFormIcon == null)
                _defaultFormIcon = (Icon)typeof(Form).
                    GetProperty("DefaultIcon", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).GetValue(null, null);

            return _defaultFormIcon;
        }
    }

    public static void SetDefaultIcon()
    {
        var icon = Icon.ExtractAssociatedIcon(EntryAssemblyInfo.ExecutablePath);
        typeof(Form)
            .GetField("defaultIcon", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static)
            .SetValue(null, icon);
    }
}

public static class FormExtensions
{
    internal static void GetIconIfDefault(this Form dest, Form source)
    {
        if (dest.Icon == FormUtils.DefaultFormIcon)
            dest.Icon = source.Icon;
    }
}

Итак, как вы можете видеть в коде, у вас есть тот же значок Icon.Handle. Та же ссылка. Form.DefaultIcon является внутренним ленивым загруженным статическим свойством в классе Form.

Вы также можете переопределить значок Winforms по умолчанию для вашего приложения. В Program.cs я использую:

FormUtils.SetDefaultIcon();

Эта функция затем переопределит значок по умолчанию со значком, указанным в ваших свойствах приложения, значком вашего исполняемого файла.

681
задан Paolo Forgia 20 February 2019 в 07:42
поделиться