Question Comment personnaliser la boîte de dialogue FileOpen pour> = Vista?


Je cherche à personnaliser le Vista-like OpenFileDialog avec des contrôles WinForms et WPF personnalisés. Je sais que vous pouvez modéliser le OpenFileDialog de type XP mais cela semble assez moche et ne satisfait pas mes exigences. Je sais que vous pouvez personnaliser le OpenFileDialog avec soit le Ookii dialogues ou de Pack de code API de Microsoft. Le problème avec cette approche est qu’ils ne permettent pas les contrôles personnalisés, seulement un sous-ensemble limité de contrôles (Label, TextBox, etc.).

Le plus proche que j'ai eu est l'image ci-dessous. En utilisant une combinaison de code API, quelques modifications apportées au shell, un travail d’ajout d’étiquettes vides pour l’espacement, avec un tas de vilains COM pour dessiner le contrôle directement sur OpenFileDialog.

Le problème avec cette approche est que je dois désactiver le redimensionnement dans le WndProc car la section des contrôles dans le CommonOpenFileDialog a une disposition de type flow / wrap et vous ne pouvez pas ajouter / supprimer dynamiquement des contrôles lors de la redimensionnement ou vous obtenez une défaillance catastrophique si OpenFileDialog a déjà été affiché.

Existe-t-il des suggestions allant au-delà de ce que j'ai essayé ou de produits tiers fonctionnant comme OpenFileDialog standard de type Vista, mais permettant l'insertion de contrôles personnalisés?

[

J'ai également essayé de rouler moi-même en utilisant ExplorerBrowser à partir de l'API Code Pack (comme dans l'image ci-dessous) mais malgré le mélange de l'API COM, cela ne semble pas être un moyen de définir des filtres dans ExplorerBrowser.

[


11
2018-02-13 16:18


origine


Réponses: