У меня есть приложение WPF Windows. Мне нужно изменить цвет фона в строке заголовка. Как я могу это сделать?
Изменение цвета фона заголовка WPF
Ответ 1
В WPF заголовок является частью неклиентской области, которая не может быть изменена через класс окон WPF. Вам нужно манипулировать дескрипторами Win32 (если я правильно помню).
Эта статья может быть вам полезна: Пользовательское окно Chrome в WPF.
Ответ 2
Вот пример того, как этого добиться:
<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;
}
Надеюсь, это поможет.
Ответ 3
Вы также можете создать окно без полей и сами сделать границы и заголовок
Ответ 4
Проверьте следующий пример WPF, настраивающий внешний вид окна в XAML
В этом примере показано, как полностью настроить стиль/внешний вид окна, в том числе неклиентские области: панель заголовка, границы, максимальная, минимальная и закрывающая кнопки, при этом все еще сохраняя ожидаемую функциональность.