Я искал вверх и вниз в Интернете и, к сожалению, никогда не сталкивался с вопросом совсем как у меня, так что здесь идет:C#, WPF - OpenFileDialog не появляется
Мой C# WPF приложение не будет показывать мне не OpenFileDialogs или SafeFileDialogs.
private void btnBrowseNet_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckPathExists = true;
ofd.Multiselect = false;
ofd.Title = "Open Network Configuration Batch file...";
ofd.ValidateNames = true;
ofd.Filter = "Comma Seperated Value Files|*.csv";
if (ofd.ShowDialog() == true)
{
//...
}
}
Это точный код делает в одном случае именно то, что он должен делать, и вряд ли через пять минут я могу нажать на кнопку все, что я хочу, ничего не происходит, но указатель мыши поворот в маленький занятом-индикатор, а затем ничего. Я могу пройти этот метод или сделать что-то вроде этого
bool? shown = ofd.ShowDialog();
Но неважно, диалог не будет отображаться. Конечно, показанное будет ложным в этом случае. Я потратил полтора часа на поиски вчера и сразу, когда я ушел, я попробовал еще раз, и все это сработало. Иногда это работает, иногда это не так. Но это похоже на конкретный проект, потому что я могу вставить тот же код в новый проект, и он работает так, как будто он должен делать. Кроме того, это единственное, что связано с проектом, которое кажется подозрительным. Все остальное работает по назначению.
Неужели кто-нибудь здесь когда-либо испытывал нечто похожее и, следовательно, идею о том, что я мог сделать? Любая помощь, которую мы высоко ценим.
В качестве отправной точки для тех, кто отвечает, это выглядит как «Microsoft.Win32.OpenFileDialog», а не эквивалент 'System.Windows.Forms.OpenFileDialog'. –
Да, это правильно. Спасибо за разъяснение! – Koarl
Это старый вопрос, но я испытываю тот же феномен с надстройкой VSTO для Excel: «Иногда это работает, иногда это не так». Это совершенно непредсказуемо. К сожалению, ни эксперимент с потоками STA, ни создание (фиктивные) формы, ни окна WPF перед вызовом OpenFileDialog.ShowDialog() (как предложено ниже) не позволяют этого поведения. – bovender