WPF窗口模板——Style样式

Posted 柒言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF窗口模板——Style样式相关的知识,希望对你有一定的参考价值。

通用模板,窗口样式

 1 <!-- 通用窗口模板 -->  
 2     <ControlTemplate x:Key="CustomWindowTemplate" TargetType="Window">  
 3         <Border Margin="3" CornerRadius="5,5,5,5" Background="#1BA1E2" MouseLeftButtonDown="CustomWindow_MouseLeftButtonDown">  
 4             <Border.Effect>  
 5                 <DropShadowEffect BlurRadius="3" RenderingBias="Performance" ShadowDepth="0" Opacity="1"/>  
 6             </Border.Effect>  
 7             <Grid>  
 8                 <Grid.RowDefinitions>  
 9                     <RowDefinition Height="50"></RowDefinition>  
10                     <RowDefinition></RowDefinition>  
11                 </Grid.RowDefinitions>  
12                 <Grid Grid.Row="0">  
13                     <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"  
14                                    Text="{TemplateBinding Title}" Foreground="#FFFFFF" FontSize="20"></TextBlock>  
15                     <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,10,0" VerticalAlignment="Top">  
16                         <Button Height="20" Width="20" Content="-"  
17                                 Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnMinimized_Click" />  
18                         <Button Height="20" Width="20" Content=""  
19                                 Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnMaxNormal_Click" />  
20                         <Button Height="20" Width="20" Content="×"  
21                                 Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnClose_Click" />  
22                     </StackPanel>  
23                 </Grid>  
24                 <Grid Grid.Row="1">  
25                     <AdornerDecorator>  
26                         <ContentPresenter></ContentPresenter>  
27                     </AdornerDecorator>  
28                 </Grid>  
29             </Grid>  
30         </Border>  
31     </ControlTemplate>  
32   
33     <!-- 通用窗口样式 -->  
34     <Style x:Key="CustomWindowChrome" TargetType="Window">  
35         <Setter Property="AllowsTransparency" Value="True"></Setter>  
36         <Setter Property="Background" Value="Transparent"></Setter>  
37         <Setter Property="WindowStyle" Value="None"></Setter>  
38         <Setter Property="ResizeMode" Value="NoResize"></Setter>  
39         <Setter Property="Template" Value="{StaticResource CustomWindowTemplate}"></Setter>  
40     </Style>  

 

  1. <!-- 通用窗口模板 -->  
  2.     <ControlTemplate x:Key="CustomWindowTemplate" TargetType="Window">  
  3.         <Border Margin="3" CornerRadius="5,5,5,5" Background="#1BA1E2" MouseLeftButtonDown="CustomWindow_MouseLeftButtonDown">  
  4.             <Border.Effect>  
  5.                 <DropShadowEffect BlurRadius="3" RenderingBias="Performance" ShadowDepth="0" Opacity="1"/>  
  6.             </Border.Effect>  
  7.             <Grid>  
  8.                 <Grid.RowDefinitions>  
  9.                     <RowDefinition Height="50"></RowDefinition>  
  10.                     <RowDefinition></RowDefinition>  
  11.                 </Grid.RowDefinitions>  
  12.                 <Grid Grid.Row="0">  
  13.                     <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"  
  14.                                    Text="{TemplateBinding Title}" Foreground="#FFFFFF" FontSize="20"></TextBlock>  
  15.                     <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,10,0" VerticalAlignment="Top">  
  16.                         <Button Height="20" Width="20" Content="-"  
  17.                                 Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnMinimized_Click" />  
  18.                         <Button Height="20" Width="20" Content="□"  
  19.                                 Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnMaxNormal_Click" />  
  20.                         <Button Height="20" Width="20" Content="×"  
  21.                                 Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnClose_Click" />  
  22.                     </StackPanel>  
  23.                 </Grid>  
  24.                 <Grid Grid.Row="1">  
  25.                     <AdornerDecorator>  
  26.                         <ContentPresenter></ContentPresenter>  
  27.                     </AdornerDecorator>  
  28.                 </Grid>  
  29.             </Grid>  
  30.         </Border>  
  31.     </ControlTemplate>  
  32.   
  33.     <!-- 通用窗口样式 -->  
  34.     <Style x:Key="CustomWindowChrome" TargetType="Window">  
  35.         <Setter Property="AllowsTransparency" Value="True"></Setter>  
  36.         <Setter Property="Background" Value="Transparent"></Setter>  
  37.         <Setter Property="WindowStyle" Value="None"></Setter>  
  38.         <Setter Property="ResizeMode" Value="NoResize"></Setter>  
  39.         <Setter Property="Template" Value="{StaticResource CustomWindowTemplate}"></Setter>  
  40.     </Style>  

以上是关于WPF窗口模板——Style样式的主要内容,如果未能解决你的问题,请参考以下文章

WPF QuickStart系列之样式和模板(Style and Template)

关于WPF中关于样式和模板的区别

WPF中是不是只能通过改代码来修改Style?

WPF 默认窗口样式覆盖

wpf combobox样式不显示倒三角

WPF自定义控件の重写原生控件样式模板