тогда все работает как положено.

я проблема с проектом Windows Forms, который я могу воспроизвести только наWindows 10 машина (на Windows 7 это работает). Я думаю, что я мог бы изолировать источник проблемы, а именно, если бы я включил двойную буферизацию и установилFormBorderStyle вNoneтогда, если я изменю размер формы, например в обработчике событий части фона и некоторые элементы управления не перерисовываются. Это также так, что иногда это работает (один раз из пяти).

Не перерисовано это выглядит так (часто немного по-другому):

и так должно выглядеть так:

Чтобы воспроизвести проблему, просто поместите пару элементов управления в форму (может быть количество может быть также важно), включите двойную буферизацию через переопределениеCreateParams, FormBorderStyle=None (с другим стилем границы это работает!).

Код позади:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
            return cp;
        }
    }

    private bool small = true;
    private void button1_Click(object sender, EventArgs e)
    {
        //toggle the form's size
        Height = Height + 300*(small?-1:1);
        small = !small;
    }

    private void button5_Click(object sender, EventArgs e)
    {
        Close();
    }
}

Вопрос:
Это известная ошибка от MS (или может быть намерение избавиться от оконных форм;)) вWindows 10?
Есть идеи?
Двойная буферизация и без границ должна быть.

Обновить: У меня версия Win 10 Pro: 1703; Сборка 15063.1155.
Update2: Тест на Win 10 Pro Версия: 1709; Сборка 16299.492 - такая же проблема.

Update3: Тест на Win 10 Home Version: 1803 - намного лучше (мне понадобилось несколько минут тестирования, чтобы воспроизвести его), но проблема все еще появляется. Этот тест был выполнен на другом компьютере с другой графической картой.

Временное решение:
Боюсь, я должен пойти по этому пути в качестве обходного путиA: Удалить строку заголовка в Windows Forms и установитьFormBorderStyle например, чтобыFixedToolWindow.

Ответы на вопрос(1)

Ваш ответ на вопрос