WPF可折叠窗口

时间:2010-06-14 22:13:10

标签: .net wpf

如何在WPF中创建一个看起来像附加的窗口(注意最小化/最大化按钮左侧的“折叠”按钮)?我详细筛选了文档,但没有用。非常感谢对此事的任何见解:)

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

1 个答案:

答案 0 :(得分:3)

没有什么特别的WPF可以做到这一点。您必须使用Win32 P / Invoke在非客户区域中绘制。幸运的是,如果您搜索WM_NCPAINTgoogle / stackoverflow),搜索与此相关的主题非常简单,但遗憾的是,这并非易事。因此,当我在这里有很多C#示例时,我认为写一个完整的例子对我没有帮助。

您需要做的唯一特定于WPF的事情是使用HwndSource类来指定处理消息的钩子过程。

protected override void OnSourceInitialized(EventArgs e)
{
    base.OnSourceInitialized(e);
    var source = (HwndSource)PresentationSource.FromVisual(this);
    source.AddHook(WndProc); // a function to process windows messages
}    
相关问题