2010-06-14 3 views
2

Как я могу создать окно в WPF, которое выглядит как прикрепленное (обратите внимание на кнопку «свернуть» слева от кнопок минимизации/максимизации)? Я просеял всю документацию, но безрезультатно. Любое понимание в этом вопросе очень ценится :)Складное окно с WPF

alt text http://www.study.en0de.com/cwindow.jpg

ответ

3

Там нет ничего действительно специфичны для WPF для этого. Вы должны прибегнуть к Win32 P/Invoke для рисования в неклиентской области. К счастью, поиск тем, связанных с этим, очень прост, если вы ищете WM_NCPAINT (google/stackoverflow), но, к сожалению, это не так. Поэтому я не думаю, что было бы очень полезно написать полный пример, когда здесь доступно множество примеров C#.

Единственное, что нужно для WPF, это использовать класс HwndSource, чтобы указать процедуру hook для обработки сообщения.

protected override void OnSourceInitialized(EventArgs e) 
{ 
    base.OnSourceInitialized(e); 
    var source = (HwndSource)PresentationSource.FromVisual(this); 
    source.AddHook(WndProc); // a function to process windows messages 
}  
Смежные вопросы