Ca vous botte de pouvoir afficher une boîte de dialogue C# qui n'affiche par défaut que les images, avec la possibilité de choisir ensuite une extension d'image particulière (comme sur cet exemple de StackOverflow), bien sur en se basant sur les formats présents dans la classes ImageCodecInfo du framework ? (si ça c'est pas du code "sustainable and easily maintainable"…)
Voilà les étapes :
On récupère un tableau contenant tous les codecs :
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
Ensuite on effectue une première boucle pour avoir le groupe "Tous les fichiers image" en premier dans la liste déroulante de la boîte de dialogue grâce à une boucle foreach (var c in codecs) {…}, et après on refait une boucle pour cette fois-ci s'occuper de chaque extension. La principale astuce c'est de faire les chose dans le bonne ordre pour ne pas avoir à se fatiguer de renseigner la variable FilterIndex responsable de l'auto-sélection d'un des groupes !
Voici donc :