簡體   English   中英

使用 wpf 定制 window 鍍鉻

[英]make custom window chrome with wpf

(這是一個問答式的問題,我自己已經回答過了)

“我正在 wpf 中制作自定義 window 鍍鉻,但是當我將其設置為 windowStyle=none 時

  • window 的夾子
  • 我無法拖動 window
  • 和 window 覆蓋任務欄

"

解決問題1

使 window 中的主網格可以按名稱訪問:

<Grid Name="MainGrid">

然后添加這些函數以在窗口的 state 更改時創建邊距

void setWinMargin()
{
    switch (WindowState)
    {
        case WindowState.Maximized:
            MainGrid.Margin = new Thickness(8, 8, 8, 8);
            break;
        case WindowState.Normal:
            MainGrid.Margin = new Thickness(0, 0, 0, 0);
            break;
    }
}

private void Window_StateChanged(object sender, EventArgs e)
{
    setWinMargin();
}

這對你來說是 xaml

StateChanged="Window_StateChanged"

這將做的是將所有內容從屏幕邊緣推開以可見

解決問題2

在您的 window 內部:

<WindowChrome.WindowChrome>
    <WindowChrome CaptionHeight="35">
    </WindowChrome>
</WindowChrome.WindowChrome>

使 CaptionHeight 成為您的 window 鉻的高度,您希望 window拖動

解決問題3

不要使用windowstate none,只需定義windowchrome,原來的按鈕就會消失,按鈕(在右側)仍然存在,只是不可見,所以你必須把按鈕放在它們上面

暫無
暫無

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

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