it-swarm.com.ru

Значок WPF для всех окон приложения

Можно установить один значок так, чтобы он использовался в каждом окне текущего приложения. Так что я установил его один раз (не для каждого окна вручную) ..?

53
vts123

Хорошая ссылка на эту тему здесь MSDN . Указывает, что у вас есть значок для приложения (значок на рабочем столе) и по одному для каждого окна.

Окно WPF всегда отображает значок. Если один из них не предусмотрен настройкой Icon, WPF выбирает значок для отображения на основе следующих правил:

  1. Используйте значок сборки, если указан.

  2. Если значок сборки не указан, используйте значок Microsoft Windows по умолчанию.

Ссылка на контент сообщества:

"Небольшой совет: если вы установите значок приложения и ожидаете увидеть его в окне - он не будет отображаться при запуске в режиме отладки из VS. При внешнем запуске или без подключения (ctrl + f5) значок отображается, как и ожидалось".

94
jsmith

Установите значок в свойствах проекта на вкладке "Приложение" в разделе "Ресурсы". Этот значок будет значком по умолчанию для всех окон в приложении.

17
John Myczek

Под VS2010 откройте Свойства для основного исполняемого файла приложения и откройте вкладку Приложение. Установите значок в разделе "Значок и манифест" в разделе "Ресурсы".

Чтобы увидеть значок во время отладки под VS2010, необходимо открыть вкладку "Отладка" и снять флажок "Включить процесс размещения Visual Studio", в противном случае вы увидите значок по умолчанию только в большинстве окон.

Я предполагаю, что код загрузки значков запутывается процессом хостинга и ищет в значках "someapplication.vshost.exe" вместо "someapplication.exe".

Похоже, это исправлено в VS2013.

1
DaveCleland

Причина, по которой "Включить процесс размещения Visual Studio" приводит к тому, что значок не работает, заключается в том, что он запускается с использованием vshost.exe и, следовательно, манифест не читается должным образом. То же самое происходит, если у вас есть другие вещи в манифесте, такие как regfree ocx control и т.д., Которые требуют манифеста для загрузки.

1
Frosty

Вы также можете попробовать это, чтобы установить свой собственный значок:

private void Page_Loaded_1(object sender, RoutedEventArgs e)
        {
            Uri iconUri = new Uri(@"C:\Apps\R&D\WPFNavigation\WPFNavigation\Images\airport.ico", UriKind.RelativeOrAbsolute);
            (this.Parent as Window).Icon = BitmapFrame.Create(iconUri);
        }
1
Nadeem Shaikh