2009-12-10 12 views

risposta

92

Un buon riferimento sull'argomento è qui MSDN. Dichiara di avere un'icona per l'applicazione (icona del desktop) e una per ogni finestra.

Una finestra WPF visualizza sempre un'icona. Quando uno non è fornito impostando Icon, WPF sceglie un'icona per visualizzare in base alle seguenti regole:

  1. utilizzare l'icona di montaggio, se specificato.

  2. Se l'icona dell'assieme non è specificata, utilizzare l'icona predefinita di Microsoft Windows.

Contenuto della community di riferimento:

"Un consiglio: basterebbe: se si imposta l'icona dell'applicazione e si aspettano di vederlo sulla finestra - è solito compare se in esecuzione in debug dal VS. esecuzione esternamente o senza allegando (ctrl + f5) l'icona viene visualizzata come previsto. "

+29

Una cosa di essere a conoscenza di (ed è citato nella sezione "contenuti della comunità" di questo articolo di MSDN si fa riferimento) è che l'applicazione l'impostazione predefinita è l'icona predefinita di Windows quando si esegue la modalità di debug da Visual Studio. Questo problema potrebbe essere risolto in VS 2010, ma non l'ho verificato. Basta non essere troppo confuso se non vedi la tua icona visualizzata quando esegui il debug! – Stephen

+0

Buon punto, aggiornerò – jsmith

+0

Quindi, come specificare l'icona nell'assieme? – Vytas999

15

Impostare l'icona nelle proprietà del progetto nella scheda "Applicazione" nella sezione "Risorse". Questa icona sarà l'icona predefinita per tutte le finestre nell'applicazione.

+1

Non funziona per me, vedo ancora l'icona predefinita. Ho impostato la nuova icona come hai detto. – Vytas999

+19

Quando si esegue in modalità di debug non vedrete l'icona dell'applicazione. È necessario eseguire in modalità di rilascio o "Avvia senza eseguire il debug" (Ctrl + F5) –

+0

Un grande suggerimento: questo ha funzionato per me anche per il mio problema con l'icona "appuntata". Dolce! – Dave

2

Sotto VS2010 aprire le Proprietà per l'eseguibile dell'applicazione principale e aprire la scheda Applicazione. Imposta l'icona sotto "Icona e Manifest" nella sezione Risorse.

Per visualizzare l'icona durante il debug sotto VS2010 è necessario aprire la scheda Debug e deselezionare l'opzione per "Abilita il processo di hosting di Visual Studio", altrimenti verrà visualizzata l'icona predefinita nella maggior parte delle finestre.

Suppongo che il codice di caricamento delle icone sia confuso dal processo di hosting e stia cercando "someapplication.vshost.exe" invece di "someapplication.exe" per le icone.

Sembra che sia stato risolto in VS2013.

+1

Non è stato risolto in VS2013, sfortunatamente. E btw., Anch'io penso che abbia qualcosa a che fare con le debuges che girano in un processo vshosts.exe –

+1

re: 'perché non mostra l'icona quando si esegue in debug?' Sta mostrando l'icona del programma in esecuzione . Ma quando si esegue il debug, il programma in esecuzione è denominato "vshost.exe" che contiene l'icona predefinita. Quindi vshost esegue il programma nel proprio ambiente di debug interno. Se vuoi pensarlo come un bug, allora il bug è che vshost non fa _reflect_ l'icona del programma inizia il debug. –

1

Il motivo per cui "Abilita il processo di hosting di Visual Studio" rende l'icona non funzionante è che viene avviato utilizzando vshost.exe, e quindi il file manifest non viene letto correttamente. Lo stesso vale se nel manifest sono presenti altre cose, come i controlli ocx regfree ecc. Che richiede il caricamento di manifest.

2

si può anche provare questo per impostare il proprio icona:

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); 
     } 
Problemi correlati