簡體   English   中英

從Windows窗體中刪除標題欄(Windows 10樣式)

[英]Remove Title Bar from Windows Form (Windows 10 style)

我有一個非常簡單的類,該類繼承自System.Windows.Forms.Form並刪除了WS_CAPTION窗口樣式。 它可以完美地在Windows XP和7中運行。 在Windows 10中,仍會繪制標題欄,使用自定義標題欄控件時,標題欄看上去很難看。

我知道可能有幾種方法可以完成這種外觀,但是出於多種原因選擇了它。 我對替代方法不感興趣-這不是我在這里提問的目的。

我的問題是什么導致在Windows 10和Windows 7中呈現這種方式的差異? 不同之處不僅在於風格。 即使WS_CAPTION標志已被刪除,標題欄似乎仍以某種容量呈現。

class BorderlessForm : System.Windows.Forms.Form
{
    protected override System.Windows.Forms.CreateParams CreateParams
    {
        get
        {
            var _CreateParams = base.CreateParams;
            _CreateParams.Style &= ~0x00C00000; // remove WS_CAPTION
            return _CreateParams;
        }
    }
}

Windows 7屏幕截圖(所需外觀與MSDN描述一致):

在此處輸入圖片說明

Windows 10屏幕截圖(外觀與MSDN描述不一致):

在此處輸入圖片說明

您正在觀察的不是標題欄,而是邊框的大小。

我的問題是什么導致在Windows 10和Windows 7中呈現這種方式的差異?

原因是在不同版本的Windows上實現了不同的外觀。

如果您有興趣即使在Windows 10上也要擺脫大小調整邊框,請執行以下操作:刪除WS_THICKFRAME標志。

另外(可能更可取),您可以將窗體的FormBorderStyle更改為其他值。 測試最適合您的方法。

但是,沒有什么東西可以精確地定義整個表格邊界。 這取決於外觀(主題)。 從技術上講,您不能期望表單的邊界在不同的實現下不會有所不同。 您只能通過測試來確保。

暫無
暫無

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

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