在 Windows 窗體中實作半透明疊加而不隱藏子控制項
在 Windows 窗體上建立半透明覆蓋層而不遮擋底層控制項需要使用位於頂部的第二個窗體。此疊加表單利用 Opacity
屬性來控制其透明度等級。
要建立此覆蓋,請在您的專案中新增一個新類別並實作 Plexiglass
類別(如下面的範例程式碼所示)。 這個類別將代表我們的覆蓋表單。
<code class="language-csharp">public class Plexiglass : Form { // ... Code implementation ... }</code>
建立 Plexiglass
類別的實例,並將主表單作為參數傳遞:
<code class="language-csharp">var overlay = new Plexiglass(this);</code>
Plexiglass
表單將動態調整其位置和大小以符合主表單,確保覆蓋範圍一致。透過 overlay.Close()
關閉覆蓋層將恢復主窗體的完全可見性。
為了獲得更流暢的視覺效果,請考慮停用主視窗上的 Aero 過渡,以防止動畫不和諧:
<code class="language-csharp">if (Environment.OSVersion.Version.Major >= 6) { int value = 1; DwmSetWindowAttribute(this.Handle, DWMWA_TRANSITIONS_FORCEDISABLED, ref value, 4); }</code>
此程式碼片段(假設 DwmSetWindowAttribute
已正確定義和匯入)會停用 Aero 過渡,從而產生更無縫的疊加外觀。
以上是如何在 Windows 窗體上建立半透明覆蓋而不遮擋子控制項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!