2009-12-10 4 views

ответ

92

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

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

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

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

Содержимое сообщества Ссылка:

«А liitle совет: если вы установите значок приложения и ожидаем увидеть его в окно - это не отображаться при работе в отладке от VS. Запуск внешних или без (ctrl + f5) значок отображается так, как ожидалось. "

+29

Одна вещь, чтобы быть в курсе (и это упоминается в разделе «Публикации» статьи MSDN вы ссылаетесь) является то, что приложение по умолчанию по умолчанию используется значок Windows по умолчанию при запуске в режиме отладки из Visual Studio. Это может быть исправлено в VS 2010, но я не проверял. Просто не смущайтесь, если вы не увидите, что ваш значок появляется при отладке! – Stephen

+0

Хорошо, я обновлю – jsmith

+0

Итак, как указать значок в сборке? – Vytas999

15

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

+1

Это не работает для меня, я по-прежнему вижу значок по умолчанию. Я установил новый значок, как вы сказали. – Vytas999

+19

При запуске в режиме отладки вы не увидите значок своего приложения. Вам нужно запустить в режиме деблокирования или «Начать без отладки» (Ctrl + F5) –

+0

Отличный совет - это сработало для меня и для моей проблемы с иконкой «приколол». Милая! – Dave

2

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

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

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

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

+1

К сожалению, в VS2013 это не исправлено. И, кстати, я тоже предполагаю, что это имеет какое-то отношение к debugees, запущенному в процессе vshosts.exe. –

+1

re: 'почему он не показывает значок при запуске в debug?' It_is_ показывает значок программы, которая запущена , Но когда вы отлаживаете, запущенная программа называется «vshost.exe», которая содержит значок по умолчанию. Затем vshost запускает вашу программу во внутренней среде отладки. Если вы хотите думать об этом как об ошибке, то ошибка заключается в том, что vshost не _reflect_, значок программы начинает отлаживаться. –

1

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

2

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

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); 
     } 
Смежные вопросы