我使用的是DwmExtendFrameIntoClientArea方法进行的玻璃效果扩展。
这在WindowStyle为除None以外的时候能够很好的实现预期效果,
但在WindowStyle = "None"的时候却只是一个透明(其实根本看不见)的窗体。
如何能使WindowStyle = "None"时仍能够对窗体实现Aero的玻璃效果呢?
多问个问题,如何能像Firefox4那样在标题栏添加控件呢?
你是否设置了其它属性,比如 AllowsTransparency="True"? 我在没有设置 AllowsTransparency="True" 的时候,是达到预期效果的. AllowsTransparency="True"之后,一个Layed窗体就会忽略他的本身的Frame,也就是你所实现的玻璃效果Frame,所以你看不到了。
“如何能像Firefox4那样在标题栏添加控件呢?”
这个,在WPF中,我看来,可以在 WindowStyle = "None"的时候,自己在上方放置自己所要的控件作为标题栏(同时别忘了加窗口操作按钮)。这个就像Ribbon For WPF中的RibbonWindow这种设计类型。http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2bfc3187-74aa-4154-a670-76ef8bc2a0b4
我做个简单的样例,你看下:http://cid-51b2fdd068799d15.office.live.com/self.aspx/.Public/Samples%5E_2011/20110406%5E_CustomGlassChromeWithNoneWindowStyle.zip
还有,你可以到这个站点:http://archive.msdn.microsoft.com/WPFShell/Release/ProjectReleases.aspx?ReleaseId=4332 下载 WPF Shell Integration Library 包括他的源代码, 里面有个Sample, 你运行了之后,点击 Glassy Chrome 按钮,就能有你要的效果。
Sincerely,