我有一個WPF Windows應用程序。我需要更改標題欄的背景顏色。我怎樣才能做到這一點?更改WPF標題欄背景顏色
回答
在WPF中,標題欄是非客戶區的一部分,無法通過WPF窗口類進行修改。你需要操縱Win32手柄(如果我沒有記錯的話)。
本文可能對您有所幫助:Custom Window Chrome in WPF。
你也可以創建一個無國界的窗口,使邊框和標題欄自己
但是,您必須自己構建所有任務欄功能(例如雙擊移動,最大化/恢復大小,雙擊圖標關閉,...)。 – 2009-08-16 11:59:49
是的......但這沒什麼大不了的,例如DragMove方法可以很容易地移動,剩下的就是蛋糕的安寧;) – 2009-08-16 13:21:43
我知道......但是構建一個自己的標題欄對我來說就像是一個骯髒的詭計。(除了創建相同的外觀和感覺是一個非常艱鉅的任務imho) – 2009-08-16 14:41:21
下面是關於如何實現這樣一個例子:
<Grid DockPanel.Dock="Right"
HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right"
VerticalAlignment="Center">
<Button x:Name="MinimizeButton"
KeyboardNavigation.IsTabStop="False"
Click="MinimizeWindow"
Style="{StaticResource MinimizeButton}"
Template="{StaticResource MinimizeButtonControlTemplate}" />
<Button x:Name="MaximizeButton"
KeyboardNavigation.IsTabStop="False"
Click="MaximizeClick"
Style="{DynamicResource MaximizeButton}"
Template="{DynamicResource MaximizeButtonControlTemplate}" />
<Button x:Name="CloseButton"
KeyboardNavigation.IsTabStop="False"
Command="{Binding ApplicationCommands.Close}"
Style="{DynamicResource CloseButton}"
Template="{DynamicResource CloseButtonControlTemplate}"/>
</StackPanel>
</Grid>
</DockPanel>
手柄單擊事件中的代碼-背後。
有關的MouseDown -
App.Current.MainWindow.DragMove();
對於最小化按鈕 -
App.Current.MainWindow.WindowState = WindowState.Minimized;
對於DoubleClick和MaximizeClick
if (App.Current.MainWindow.WindowState == WindowState.Maximized)
{
App.Current.MainWindow.WindowState = WindowState.Normal;
}
else if (App.Current.MainWindow.WindowState == WindowState.Normal)
{
App.Current.MainWindow.WindowState = WindowState.Maximized;
}
我希望這有助於。
-Sushant
ApplicationCommands.Close不適合我。我使用Application.Current.MainWindow.Close();在一個命令。也沒有DoubleClick for Grid,我使用了MouseLeftButtonDown並使用它。 if(e.ClickCount == 2) { Maximize(); } else { Application.Current.MainWindow.DragMove(); } – Tempeck 2017-10-13 06:24:22
檢查下面的示例WPF customizing the appearance of a window in XAML
此示例演示如何完全自定義樣式/外觀的窗口,包括非客戶端領域:標題欄,邊框,最大值,最小值和關閉按鈕,同時仍然提供所有預期的功能。
- 1. 更改標籤欄的背景顏色
- 2. 更改標題顏色和背景
- 3. 更改UITableView標題的背景顏色
- 4. 更改導航標題背景顏色
- 5. 更改工具欄背景顏色和標題
- 6. 更改操作欄背景和標題顏色
- 7. 更改MFMailComposeViewController的標題欄,背景和文本的顏色
- 8. Android操作欄標題 - 更改背景顏色
- 9. 更改WPF DatePicker年/月標題區域背景顏色
- 10. 更改WPF DataGrid左上角標題的背景顏色
- 11. 更改WPF擴展器中標題的背景顏色
- 12. 更改顏色標題欄
- 13. 更改導航欄背景顏色?
- 14. 更改操作欄的背景顏色
- 15. 標題菜單欄背景顏色
- 16. WPF:如何更改TransitioningContentControl背景顏色?
- 17. 在WPF中更改Webbrowser背景顏色
- 18. WPF雙擊更改行背景顏色
- 19. 更改WPF ItemTemplate的背景顏色
- 20. 更改背景顏色中的ScrollViewer WPF
- 21. 更改工具欄的背景色編程不改變工具欄標題背景顏色
- 22. 如何更改DialogFragment標題背景顏色和底線顏色
- 23. 更改行上的背景顏色,但不更改行標題
- 24. 更改iframe問題的背景顏色
- 25. 更改EditText問題的背景顏色
- 26. 更改Raphael「標籤」的背景顏色
- 27. 更改背景顏色標籤面板
- 28. 更改ActionBar標籤背景顏色
- 29. JustGage - 更改標尺的背景顏色
- 30. 自定義選項卡欄背景顏色。如何更改標籤欄背景的顏色?
相關:http://stackoverflow.com/questions/9978444/how-can-i-style-the-border-and-title-bar-of-a-window-in-wpf。 – DuckMaestro 2015-01-20 00:55:25