2009-03-30 6 views
4

Je crée ma première application WPF et je voulais comprendre s'il y avait une sorte de meilleure pratique lors du mélange de fonctionnalités de l'espace de noms System.Windows.Forms.WPF Application référençant System.Windows.Forms

Fondamentalement, je veux avoir une fenêtre qui s'ouvre par défaut dans le coin en bas à droite du moniteur des utilisateurs.

Je ne trouve pas d'équivalent Screen.PrimaryScreen.Bounds dans les espaces de noms WPF. Les exemples que j'ai vus suggèrent de référencer System.Windows.Forms dans l'application WPF.

Ce qui m'a amené à la question, est-ce une mauvaise pratique?, Étant donné que cette référence n'est pas incluse par défaut.

Je vais référencer la ressource requise WPF dans mon application Windows Forms existante afin que je puisse utiliser cette nouvelle fenêtre WPF.

Y at-il un problème avec cette approche?

EDIT: J'ai effectivement trouvé une propriété qui renvoie des informations de l'écran principal sans faire référence à Windows Forms. La propriété est SystemParameters.WorkArea, ma question de mélange de références est toujours valable.

Répondre

0

Vous devez également tenir compte des ressources et des frais généraux liés aux performances car votre application devra charger des assemblys pour Windows Forms et WPF. Il a été mentionné plusieurs fois dans les forums MSDN que l'interception de WPF/Winforms nécessite pas mal de cycles de processeur ...

0

Je ne pense pas que référencer WinForms, si nécessaire, est mauvais. Étant donné que WPF est une technologie relativement récente, elle ne dispose pas encore de la parité complète avec WinForms. Par exemple, à ma connaissance, aucune boîte de dialogue Windows standard (Ouvrir un fichier, Enregistrer un fichier, Parcourir un dossier, etc.) n'a encore été implémentée dans WPF. La seule façon de les afficher dans une application WPF est d'utiliser la version WinForms ou d'utiliser P/Invoke pour afficher les versions de Win32 vous-même. Je vais personnellement avec la version de WinForms, car ils ont déjà pris la peine d'encapsuler l'API Win32.

Mon approche est d'utiliser autant que possible WPF, et de ne faire appel à WinForms que si WPF ne répond pas à mes besoins. Heureusement pour la prochaine version de WPF, cela deviendra de moins en moins nécessaire.

+2

WPF possède OpenFileDialog et SaveFileDialog. Ils sont dans l'espace de noms Microsoft.Win32. –

+0

Wow, je ne le savais pas. Merci pour le conseil. :) – Andy

Questions connexes