WPF中使用WindowChrome自定义窗口中遇到的最大化问题
2021-06-21 13:05
标签:throw option ado blog margin template asp 显示 navig FrameWork 4.5 之后,内置了WindowChrome类,官方文档: https://msdn.microsoft.com/en-us/library/system.windows.shell.windowchrome.aspx 如果你是旧版本,可以去搜索单独的dll。 上方的页面,解释和例子也都是旧版本的,如果新版本,比如和我一样,是4.6.2,可以继续往下看新的用法,相比文档中的旧方式,新的用法的确更简单有效了。 问题:shell:SystemParameters2.Current 在新的版本中不知道在哪里找。 回答: xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework" shell:SystemParameters2 已经移除,相关的类似操作,可以在shell:SystemParameters中找到。 以下是Window的样式:无标题栏,无图标,无功能按钮,当然也没拖动。 以下是关键的 cvt:SystemWorkAreaToMarginConverter 思路就是整个屏幕裁掉任务栏部分,可供“最大化窗体”使用的部分了,所得到的外边距便是任务栏的那部分区域。 WPF中使用WindowChrome自定义窗口中遇到的最大化问题 标签:throw option ado blog margin template asp 显示 navig 原文地址:https://www.cnblogs.com/lonelyxmas/p/10236584.html
1 Style x:Key="ShellNoneStyleWindow"
2 TargetType="Window">
3 Setter Property="AllowsTransparency" Value="True" />
4 Setter Property="WindowStyle" Value="None" />
5 Setter Property="Background" Value="Transparent" />
6 Setter Property="ResizeMode" Value="NoResize" />
7 Setter Property="TextOptions.TextFormattingMode" Value="Display" />
8 Setter Property="shell:WindowChrome.WindowChrome">
9 Setter.Value>
10 shell:WindowChrome CaptionHeight="0"
11 GlassFrameThickness="0"
12 NonClientFrameEdges="None"
13 ResizeBorderThickness="0"
14 UseAeroCaptionButtons="False" />
15 Setter.Value>
16 Setter>
17 Setter Property="Template">
18 Setter.Value>
19 ControlTemplate TargetType="Window">
20 AdornerDecorator Grid.Row="1"
21 KeyboardNavigation.IsTabStop="False">
22 Border x:Name="Content_Panel">
23 ContentPresenter x:Name="MainContentPresenter"
24 KeyboardNavigation.TabNavigation="Cycle" />
25 Border>
26 AdornerDecorator>
27 ControlTemplate.Triggers>
28 Trigger Property="WindowState" Value="Maximized">
29 Setter TargetName="Content_Panel" Property="Margin">
30 Setter.Value>
31 Binding>
32 Binding.Converter>
33 cvt:SystemWorkAreaToMarginConverter />
34 Binding.Converter>
35 Binding>
36 Setter.Value>
37 Setter>
38 Trigger>
39 ControlTemplate.Triggers>
40 ControlTemplate>
41 Setter.Value>
42 Setter>
43 Style>
1 ///
文章标题:WPF中使用WindowChrome自定义窗口中遇到的最大化问题
文章链接:http://soscw.com/essay/96907.html