gpt4 book ai didi

wpf - 在 WPF 中创建通用窗口外观

转载 作者:行者123 更新时间:2023-12-04 19:24:31 24 4
gpt4 key购买 nike

如何在 WPF 中创建通用窗口外观?我不是在谈论只是为窗口设计样式,我的意思是有一个带有边框、网格和其他一些东西的窗口。

谢谢。

最佳答案

您可以为窗口创建一个 ControlTemplate。这是一个非常基本的示例,其中包含一些控件和触发器。您可以轻松添加更多元素以满足您的需求。

   <ControlTemplate x:Key="MyWindowTemplate" TargetType="{x:Type Window}">
<Border x:Name="WindowBorder" Style="{DynamicResource WindowBorderStyle}">
<Grid>
<Border Margin="4,4,4,4" Padding="0,0,0,0" x:Name="MarginBorder">
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
</Border>
<ResizeGrip Visibility="Collapsed" IsTabStop="false" HorizontalAlignment="Right" x:Name="WindowResizeGrip"
VerticalAlignment="Bottom" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip"/>
<Condition Property="WindowState" Value="Normal"/>
</MultiTrigger.Conditions>
<Setter Property="Visibility" TargetName="WindowResizeGrip" Value="Visible"/>
<Setter Property="Margin" TargetName="MarginBorder" Value="4,4,4,20" />
</MultiTrigger>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="CornerRadius" TargetName="WindowBorder" Value="0,0,0,0"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>

您可以通过设置 Window 的模板属性来使用此 ControlTemplate:
   Template="{StaticResource MyWindowTemplate}"

您将希望将它与这样的样式结合使用:
   <Style x:Key="MyWindowStyle" TargetType="{x:Type Window}">
<Setter Property="AllowsTransparency" Value="False" />
<Setter Property="WindowStyle" Value="SingleBorderWindow" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
<Setter Property="Background" Value="Transparent" />
<Setter Property="ShowInTaskbar" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Border>
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

并在您的 Window 上设置样式,如下所示:
Style="{StaticResource MyWindowStyle}"

关于wpf - 在 WPF 中创建通用窗口外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com