簡體   English   中英

Visual Studio 2012如何繪制窗口邊框?

[英]How does Visual Studio 2012 draw its window border?

如何使用Windows窗體在新的Visual Studio 2012主窗口中看到相同的alpha邊框效果? 它的窗戶似乎發光。

所以我不確定它是否是最好的方法,但是如果你使用Spy ++(32位)並且你在窗口中查看,你可以看到在Visual Studio的主窗口下面,你可以看到4個“VisualStudioGlowWindow”對象。

我在Spy ++中隱藏了這些消息,正如你想象的那樣,4個窗口代表了表單周圍的4個發光邊框。 進一步檢查顯示這4個“發光窗口”實現了WS_EX_LAYERED擴展窗口樣式,因此發光本身不是在WPF中完成的(據我所知)。

希望這能清除一些東西。

在此輸入圖像描述

AFAIK你可以使用這個chrome和自定義WPF邊框混合使用WPF。 不確定是否可以使用WinForms,因為它的樣式選項有限(與WPF相比)。 無論如何, 他們正在使用WPF

除非你想自己處理整個表格,否則你不能。 因為Visual Studio 2010和Visual Studio 2012是在WPF之上編寫的,所以使用的是Windows而不是Forms。

Visual Studio 2012使用本機Win32函數繪制其窗口邊框。 它與WPF或WindowsForms無關 - 您可以同時使用它們。

發光在主窗口頂部的透明窗口上呈現。 主窗口調用DWM API將玻璃區域設置為0.這樣您就可以繪制原始邊框和系統按鈕。 這是執行此操作的正確方法。

您可以查看WPF Shell的代碼(http://archive.msdn.microsoft.com/WPFShell),了解如何調用DWM以刪除玻璃。 寫入與WPF兼容的事實並不重要,因為您需要的只是窗口的句柄(IntPtr)。

如果您有WindowsForms代碼庫,請不要遷移到WPF。 WPF在最新的.NET框架版本中沒有得到改進,並且由於其團隊已集成到Windows 8團隊中,因此沒有改進或新功能的路線圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM