Диалог открытия / сохранения собственного файла (без Windows Forms или WPF) - PullRequest
3 голосов
/ 17 июня 2011

Как импортировать и использовать собственный диалог открытия файла? Есть ли у меня какие-либо преимущества в приложении, которое не использует Windows Forms или WPF? Или просто сослаться на это?

Ответы [ 3 ]

6 голосов
/ 17 июня 2011

Стандартные файловые диалоги, предлагаемые WinForms и WPF, являются просто оболочками вокруг собственных диалогов.Поэтому имеет смысл использовать эти управляемые классы C #.

Если вы хотите каким-либо образом настраивать диалоги (например, добавлять элементы управления в диалог), то может быть целесообразно использовать собственный API.Но это главным образом потому, что вам нужно использовать технику настройки для XP, отличную от той, что использовалась в Vista / 7.Даже в чистом нативном коде настройка файловых диалогов нетривиальна, и вам действительно следует избегать этого, если вы можете.

5 голосов
/ 17 июня 2011

В Windows API Code Pack имеются оболочки для общих диалогов.Некоторые версии Windows Forms и WPF, выпущенные до Vista, использовали некоторые параметры при построении диалогов, которые заставили Vista (или Windows 7) сказать: «О, вы знаете, что вы хотите, я не дам вам всеобщеготанцуют новые версии диалогов ».С тех пор появились пакеты обновления, новые выпуски и т. Д., Которые позаботились об этом.Если по какой-то причине вы не можете получить правильные диалоги, начните с установки любых пакетов обновлений для любой версии Visual Studio, которую вы используете.Если вы по-прежнему не удовлетворены, попробуйте Code Pack.

1 голос
/ 17 июня 2011

Это вопрос того, что вы делаете со своим приложением.Если он написан с использованием Windows Forms, используйте System.Windows.Forms.OpenFileDialog;если он написан с использованием WPF, см. здесь: OpenDialog для WPF , если по какой-то особой причине вы должны пойти против API Win32, продолжайте и читайте здесь о GetOpenFileName: http://msdn.microsoft.com/en-us/library/ms646927%28v=vs.85%29.aspx

...