Можно установить один значок так, чтобы он использовался в каждом окне текущего приложения. Так что я устанавливаю его один раз (не на каждое окно вручную).?
Иконка WPF для всех окон приложений
Ответ 1
Хорошая ссылка на эту тему приведена здесь MSDN. Указывает, что у вас есть значок для приложения (значок рабочего стола) и по одному для каждого окна.
Окно WPF всегда отображает значок. Когда один из них не предоставляется установкой значка, WPF выбирает значок для отображения на основе следующих правил:
-
Используйте значок сборки, если это указано.
-
Если значок сборки не указан, используйте значок Microsoft Windows по умолчанию.
Ссылка на контент сообщества:
"Совет лити: если вы установите значок приложения и ожидаете увидеть его в окне - он не будет отображаться, если он запущен в отладке из VS. Запуск извне или без привязки (ctrl + f5) значок отображается так, как ожидалось."
Ответ 2
Установите значок в свойствах проекта на вкладке "Приложение" в разделе "Ресурсы". Этот значок будет значком по умолчанию для всех окон в приложении.
Ответ 3
В VS2010 откройте "Свойства" для основного исполняемого приложения и откройте вкладку "Приложение". Установите значок в разделе "Значок и манифест" в разделе "Ресурсы".
Чтобы увидеть значок во время отладки под VS2010, вам нужно открыть вкладку "Отладка" и снять флажок "Включить процесс хостинга Visual Studio", иначе вы увидите только значок по умолчанию для большинства окон.
Я предполагаю, что код загрузки значка путается процессом хостинга и ищет в "someapplication.vshost.exe" вместо "someapplication.exe" для значков.
Это похоже на исправление в VS2013.
Ответ 4
Вы также можете попробовать это, чтобы установить свой собственный значок:
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);
}
Ответ 5
Причина, по которой "Включить хостинг Visual Studio" делает значок неработоспособным, заключается в том, что он запускается с помощью vshost.exe, и поэтому манифест не читается должным образом. То же самое происходит, если в манифесте есть другие вещи, такие как regfree ocx controls и т.д., Которые требуют, чтобы манифест загружался.