Я использую в своем приложении библиотеку Gwen для получения гуев в OpenTK. Однако для чтения и записи файлов в этой библиотеке используется методы, основанные на Windows.Forms Метод для загрузки файла выглядит так:
public static bool FileOpen(String title, String startPath, String extension, Action<String> callback)
{
var dialog = new OpenFileDialog
{
Title = title,
InitialDirectory = startPath,
DefaultExt = @"*.*",
Filter = extension,
CheckPathExists = true,
Multiselect = false
};
if (dialog.ShowDialog() == DialogResult.OK)
{
if (callback != null)
{
callback(dialog.FileName);
}
}
else
{
if (callback != null)
{
callback(String.Empty);
}
return false;
}
return true;
}
public static void Main (string[] args)
{
//создаем диалог
System.Windows.Forms.OpenFileDialog oFD = new System.Windows.Forms.OpenFileDialog ();
oFD.InitialDirectory = ".";
oFD.Filter = "(*.txt)|*.txt|All files (*.*)|*.*";
oFD.FilterIndex = 2;
oFD.RestoreDirectory = false;
//выводим диалог и пишем в консоль результат
Console.WriteLine (oFD.ShowDialog ());
//ожидаем нажатие в консоли, при этом диалог должен закрыться, но он "залип"
Console.ReadKey ();
}