2010-11-30 27 views
2

Je vais mettre Window.Icon propriété en utilisant ResourceDictionary comme ci-dessous:Un problème étrange avec WPF Window.Icon

<Style TargetType="{x:Type Window}"> 
    <Setter Property="Icon" Value="/WpfApplication1;component/Resources/Icon.ico" /> 
</Style> 

Au-dessus de style n'a pas été changer l 'icône de la fenêtre. Cependant quand je mets Icon of Window directement, c'est fait correctement!

<Window Icon="/WpfApplication1;component/Resources/Icon.ico"> 
    //Content 
</Window> 

Note: Build Action de Icon.ico a été mis à Resource et ResourceDictionary également chargé.

Répondre

1

Le problème est que votre style n'est pas appliqué du tout. Vous devrez définir votre style en app.xaml, lui attribuer une clé et définir explicitement le style de votre fenêtre.
EDIT:
Goblin a proposé une autre solution intéressante, extrait de son commentaire:
il pourrait régler le TargetType = "{local: MainWindow}" où est l'espace de noms local pour WPFApplication1. Le problème est que l'application 'clé vide' ne fonctionne que pour le type spécifié - pas les descendants.

+2

C'est partiellement correct - il pourrait définir TargetType = "{local: MainWindow}" où local est l'espace de noms pour WPFApplication1. Le problème est que l'application 'clé vide' ne fonctionne que pour le type spécifié - pas les descendants. – Goblin

+0

@Goblin: merci, je ne le savais pas. Je pense que votre commentaire aurait dû être une réponse. –

+0

@ alpha-souris - vous pouvez simplement l'ajouter comme une alternative dans votre réponse si vous le souhaitez - votre réponse fonctionnera certainement. – Goblin