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