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>
- <!-- 通用窗口模板 -->
- <ControlTemplate x:Key="CustomWindowTemplate" TargetType="Window">
- <Border Margin="3" CornerRadius="5,5,5,5" Background="#1BA1E2" MouseLeftButtonDown="CustomWindow_MouseLeftButtonDown">
- <Border.Effect>
- <DropShadowEffect BlurRadius="3" RenderingBias="Performance" ShadowDepth="0" Opacity="1"/>
- </Border.Effect>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="50"></RowDefinition>
- <RowDefinition></RowDefinition>
- </Grid.RowDefinitions>
- <Grid Grid.Row="0">
- <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"
- Text="{TemplateBinding Title}" Foreground="#FFFFFF" FontSize="20"></TextBlock>
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,10,0" VerticalAlignment="Top">
- <Button Height="20" Width="20" Content="-"
- Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnMinimized_Click" />
- <Button Height="20" Width="20" Content="□"
- Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnMaxNormal_Click" />
- <Button Height="20" Width="20" Content="×"
- Style="{StaticResource ResourceKey=CustomWindowMenuBtn}" Click="CustomWindowBtnClose_Click" />
- </StackPanel>
- </Grid>
- <Grid Grid.Row="1">
- <AdornerDecorator>
- <ContentPresenter></ContentPresenter>
- </AdornerDecorator>
- </Grid>
- </Grid>
- </Border>
- </ControlTemplate>
- <!-- 通用窗口样式 -->
- <Style x:Key="CustomWindowChrome" TargetType="Window">
- <Setter Property="AllowsTransparency" Value="True"></Setter>
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="WindowStyle" Value="None"></Setter>
- <Setter Property="ResizeMode" Value="NoResize"></Setter>
- <Setter Property="Template" Value="{StaticResource CustomWindowTemplate}"></Setter>
- </Style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义