C # - VisualStyles.VisualStyleState.NonClientAreaEnabled показывает другой диалог с вызовом OpenFileDialog - PullRequest
0 голосов
/ 28 января 2019

Установка VisualStyles.VisualStyleState.NonClientAreaEnabled в коде показывает совершенно другой диалог для вызова OpenFileDialog, чем когда это делается без VisualStyleState.В раскрывающемся списке «Меню просмотра» отображается вертикальная полоса без текста, и левая панель браузера исчезла.

Изображение, показывающее проблему с установленным состоянием визуального стиля

В нашемПриложение, нам нужно установить стили, так как мы разработали собственные.

Ошибка, воспроизводимая в Windows 10 Build 1709, .Net 4.6.1 и приложении по умолчанию на C # формах.Также воспроизводится в Windows 10 build 1809. Прекрасно работает со всеми более ранними версиями Windows.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Application.VisualStyleState = System.Windows.Forms.VisualStyles.VisualStyleState.NonClientAreaEnabled;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog fileDialog = new OpenFileDialog();

        fileDialog.Multiselect = false;
        fileDialog.CheckFileExists = true;
        fileDialog.Filter = " (*.sql)|*.sql";
        fileDialog.ShowDialog();
    }
}

Без установленного VisualStyleState, OpenFileDialog показывает совершенно другой пользовательский интерфейс с панелью браузера слева и все раскрывающиеся списки работают.как и ожидалось.

Изображение, демонстрирующее поведение OpenFileDialog по умолчанию

Любые указатели для устранения этой проблемы будут полезны.

...