2009-12-10 17 views

Odpowiedz

92

Dobre referencje na ten temat można znaleźć tutaj: MSDN. Mówi, że masz ikonę dla aplikacji (ikona pulpitu) i jedną dla każdego okna.

Okno WPF zawsze wyświetla ikonę. Jeśli nie jest to zapewnione przez ustawienie ikony, WPF wybiera ikonę do wyświetlenia na podstawie następujących reguł:

  1. Użyj ikony zespołu, jeśli określono.

  2. Jeśli ikona zestawu nie jest określona, ​​użyj domyślnej ikony Microsoft Windows.

Społeczność referencyjny Treść:

„Liitle wskazówka: jeśli ustawisz ikonę aplikacji i oczekiwać, aby zobaczyć go w oknie - to przyzwyczajenie pokazać się, jeśli działa w debugowania z VS. Running zewnętrznie lub bez załączając (ctrl + f5) ikona wyświetla się zgodnie z oczekiwaniami. "

+29

jedna rzecz, aby mieć świadomość (i jest ona wymieniona w sekcji „zawartość” w artykule MSDN ty odniesienia) jest to, że w aplikacji nadal domyślnie jest domyślną ikoną systemu Windows po uruchomieniu w trybie debugowania z programu Visual Studio. Można to naprawić w VS 2010, ale nie sprawdziłem. Po prostu nie bądźcie zbyt zdezorientowani, jeśli nie zobaczycie, że ikona wyświetla się podczas debugowania! – Stephen

+0

Dobra uwaga, zaktualizuję – jsmith

+0

Jak zatem określić ikonę w zespole? – Vytas999

15

Ustaw ikonę we właściwościach projektu na zakładce "Aplikacja" w sekcji "Zasoby". Ta ikona będzie domyślną ikoną dla wszystkich okien w aplikacji.

+1

To nie działa dla mnie, nadal widzę ikonę domyślną. Ustawiłem nową ikonę, tak jak powiedziałeś. – Vytas999

+19

Po uruchomieniu w trybie debugowania nie zobaczysz ikony aplikacji. Musisz uruchomić w trybie Release lub "Start bez debugowania" (Ctrl + F5). –

+0

Świetna wskazówka - to zadziałało dla mnie z powodu problemu z ikoną "przypiętą". Słodkie! – Dave

2

W VS2010 otwórz Właściwości dla pliku wykonywalnego aplikacji głównej i otwórz zakładkę Aplikacja. Ustaw ikonę w obszarze "Ikona i manifest" w sekcji Zasoby.

Aby zobaczyć ikonę podczas debugowania w VS2010, należy otworzyć kartę Debugowanie i odznaczyć opcję "Włącz proces hostingu Visual Studio", w przeciwnym razie zobaczysz tylko domyślną ikonę w większości okien.

Zakładam, że kod ładujący ikony zostaje pomieszany przez proces hostowania i szuka w "someapplication.vshost.exe" zamiast "someapplication.exe" dla ikon.

Wygląda na to, że został naprawiony w VS2013.

+1

Niestety, nie jest to naprawione w VS2013. I przy okazji, ja też zakładam, że ma to coś wspólnego z programami debugującymi działającymi w procesie vshosts.exe –

+1

re: "dlaczego nie wyświetla ikony podczas uruchamiania debugowania?" To _jest_ pokazuje ikonę programu, który działa . Ale podczas debugowania program, który jest uruchomiony, nazywa się "vshost.exe", który zawiera domyślną ikonę. Następnie vshost uruchamia twój program w swoim wewnętrznym środowisku debugowania. Jeśli chcesz myśleć o tym jako o błędzie, to błąd polega na tym, że vshost nie _reflect_ ikona debugowania programu. –

1

Przyczyną, że "Włącz proces hostingu Visual Studio" sprawia, że ​​ikona nie działa, jest to, że jest ona uruchamiana za pomocą vshost.exe, a tym samym manifest nie jest poprawnie czytany. To samo dotyczy innych rzeczy w manifeście, takich jak regfree ocx control itp., Które wymagają załadowania manifestu.

2

Można też spróbować ustawić własne ikony:

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); 
     } 
Powiązane problemy