Я хочу сделать окно WPF расширенным в области заголовка (например, Office 2007/2010). Я реализовал DwmWindow (см. DwmTest.zip ), где я поместил необходимые вещи. Обычно это работает нормально, за исключением одной отвратительной вещи: окно выглядит как белый прямоугольник (см. DwmIssue.png ), и через несколько секунд этот прямоугольник исчезает, и отображается содержимое окна (см. DwmIssueCorrect .png ). Эта ошибка важна только для моего окна. Если я уберу эту строку, она будет работать нормально (без нее aero не будет отображаться в заголовке):
HwndSource mainWindowSrc = HwndSource.FromHwnd(handle);
if (mainWindowSrc != null) mainWindowSrc.CompositionTarget.BackgroundColor = Colors.Transparent;
NativeMethods.MARGINS margins = new NativeMethods.MARGINS(0, 50, 0, 0);
NativeMethods.DwmExtendFrameIntoClientArea(handle, margins);
Как я могу устранить этот белый прямоугольник?
(для запуска образца DwmTest.zip WinVista / 7 с поддержкой DWM и .NET 4.0 требуется. Для компиляции примера вам потребуется Visual Studio 2010)