Проблема с созданием окна WPF, расширенного в области заголовка (например, Office 2007/2010) - PullRequest
1 голос
/ 12 мая 2010

Я хочу сделать окно 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)

1 Ответ

1 голос
/ 12 мая 2010

У меня нет прямого решения вашей проблемы, но, возможно, вы захотите взглянуть на этот пост , который я прочитал вчера. Насколько я понял, речь идет о оболочке WPF для необходимой функциональности, так что вы можете указать все содержимое в XAML. Я не пробовал, но, похоже, от парней из Microsoft, поэтому они, вероятно, знают, как это сделать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...