Skip to content

WindowXCaption zh CN

末城via edited this page Jun 21, 2023 · 3 revisions

WindowXCaption 窗体X标题栏辅助类

返回目录

适用于:   v1.1.12 或更新的版本

概述

类名:    WindowXCaption
命名空间:    Panuon.WPF.UI
位于:    SharedResources/Panuon.WPF.UI/Helpers/WindowXCaption.cs
静态类

提供一系列属性和方法, 用于定义 Window 控件的标题栏样式。


备注

属性间的相互作用

该类型没有此内容。

自定义样式提示

WindowXCaption.Background 附加属性默认与窗体的 Background 属性绑定。如果在后者上使用了渐变色色彩画刷或图像色彩画刷,建议将 WindowXCaption.Background 附加属性设置为 Transparent 以获得更好的显示效果。
WindowXCaption.Background 附加属性的值设为 TransparentNull 时, WindowXCaption.ShadowColor 附加属性将失效,窗体标题栏不会具有阴影效果。
如果在 WindowXCaption.HeaderTemplate 附加属性的模板中添加了可以使用鼠标交互的控件(例如 Button 按钮 , TextBox 输入框 等),必须在这些控件上添加 pu:WindowX.IsDragMoveArea="False" 。否则,鼠标可能无法点击到这些控件。
若要在 WindowXCaption.HeaderTemplate 中的控件上绑定ViewModel中的属性,应当使用 FooProperty="{Binding DataContext.FooProperty, RelativeSource={RelativeSource AncestorType=pu:WindowX}}"


附加属性

Height

类型:    System.Double
默认值:    35.0
获取或设置窗体标题栏区域的显示高度。当该属性的值发生变化时,将同时改变 WindowChrome.WindowChrome.Height 附加属性的值,这将影响标题栏可拖拽区域的高度。若将该值设为 0,标题栏将被隐藏。

Padding

类型:    System.Windows.Thickness
默认值:    0,0,0,0
获取或设置窗体标题栏区域的内边距。

Foreground

类型:    System.Media.Brush
默认值:    {Binding Foreground}
获取或设置窗体标题栏区域的前景色彩画刷。

Background

类型:    System.Media.Brush
默认值:    {Binding Background}
获取或设置窗体标题栏区域的背景色彩画刷。

BorderBrush

类型:    System.Media.Brush
默认值:    Null
获取或设置窗体标题栏区域的边框色彩画刷。

BorderThickness

类型:    System.Windows.Thickness
默认值:    0,0,0,0
获取或设置窗体标题栏区域的边框色彩画刷。

ShadowColor

类型:    System.Windows.Media.Color ?
默认值:    Null
获取或设置窗体标题栏区域的阴影颜色。若要更改阴影的模糊半径、深度等属性,请参考 ShadowHelper 辅助类。

HeaderTemplate

类型:    System.Windows.DataTemplate
默认值:    
获取或设置窗体标题栏区域的标头模板(替换IconTitle 的位置)。有关此属性的使用方式,请参考 示例2示例3

HeaderAlignment

类型:    Panuon.WPF.UI.WindowXHeaderAlignment
默认值:    [Left] / Center / Stretch
获取或设置标头模板在窗体标题栏区域的位置。Left 表示铺满标题栏区域的左侧(相对于右侧的按钮组),Center 表示在标题栏区域居中,Stretch 表示铺满整个标题栏区域(右侧按钮组将置顶)。

ExtendControl

类型:    System.Object
默认值:    Null
获取或设置窗体标题栏区域的扩展控件。扩展控件将显示在按钮组(最小化、最大化、关闭)的左侧。

Buttons

类型:    Panuon.WPF.UI.CaptionButtons
默认值:    [All] / Close / MinimizeClose / MaximizeClose / None
获取或设置窗体标题栏区域中显示的按钮组。All 表示显示所有的按钮(最大化、最小化、关闭),Close 表示只显示关闭按钮,MinimizeClose 表示只显示最小化和关闭按钮,MaximizeClose 表示只显示最大化和关闭按钮,None 表示全部隐藏。

MinimizeButtonStyle

类型:    System.Windows.Style
默认值:    [见资源键[MinimizeButtonStyle](#MinimizeButtonStyle)]
获取或设置最小化按钮的样式。

MaximizeButtonStyle

类型:    System.Windows.Style
默认值:    [见资源键[MaximizeButtonStyle](#MaximizeButtonStyle)]
获取或设置最大化按钮的样式。

CloseButtonStyle

类型:    System.Windows.Style
默认值:    [见资源键[CloseButtonStyle](#CloseButtonStyle)]
获取或设置最小化按钮的样式。

BackstageMinimizeButtonStyle

类型:    System.Windows.Style
默认值:    {Binding WindowXCaption.MinimizeButtonStyle}
获取或设置当窗体幕布层显示时,最小化按钮的样式。

BackstageMaximizeButtonStyle

类型:    System.Windows.Style
默认值:    {Binding WindowXCaption.MaximizeButtonStyle}
获取或设置当窗体幕布层显示时,最大化按钮的样式。

BackstageCloseButtonStyle

类型:    System.Windows.Style
默认值:    {Binding WindowXCaption.CloseButtonStyle}
获取或设置当窗体幕布层显示时,最小化按钮的样式。


公开的资源键

有关如何使用资源键的更多内容, 请参考命名与约定
一些无法从外部访问的属性已被隐去。

MinimizeButtonStyle

资源键全称:    {ComponentResourceKey ResourceId=MinimizeButtonStyle, TypeInTargetAssembly={x:Type pu:WindowXCaption}}
缩略资源键:    {pu:WindowXCaption.MinimizeButtonStyle}

窗体X的最小化按钮样式。

<Style x:Key="{ComponentResourceKey ResourceId=MinimizeButtonStyle, TypeInTargetAssembly={x:Type pu:WindowXCaption}}"
       TargetType="Button"
       BasedOn="{StaticResource {x:Static rs:StyleKeys.ButtonStyleKey}}">
    <Setter Property="Background"
            Value="Transparent" />
    <Setter Property="pu:ButtonHelper.HoverBackground"
            Value="#CCCCCC" />
    <Setter Property="pu:ButtonHelper.HoverForeground"
            Value="White" />
    <Setter Property="VerticalAlignment"
            Value="Top" />
    <Setter Property="HorizontalAlignment"
            Value="Right" />
    <Setter Property="Foreground"
            Value="{Binding Path=(pu:WindowXCaption.Foreground), RelativeSource={RelativeSource AncestorType=pu:WindowX}, Mode=OneWay}" />
    <Setter Property="Height"
            Value="{Binding Path=(pu:WindowXCaption.Height), RelativeSource={RelativeSource AncestorType=pu:WindowX}, Mode=OneWay}" />
    <Setter Property="Width"
            Value="{Binding Path=(pu:WindowXCaption.Height), Converter={StaticResource {x:Static pu:ConverterKeys.DoublePlusConverter}}, ConverterParameter=5,RelativeSource={RelativeSource AncestorType=pu:WindowX},Mode=OneWay}" />
    <Setter Property="MaxHeight"
            Value="35" />
    <Setter Property="MaxWidth"
            Value="40" />
    <Setter Property="Padding"
            Value="0" />
    <Setter Property="FontFamily"
            Value="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon" />
    <Setter Property="FontSize"
            Value="{Binding FontSize, Converter={StaticResource {x:Static pu:ConverterKeys.DoublePlusConverter}}, ConverterParameter=4, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
    <Setter Property="Content"
            Value="&#xe92a;" />
</Style>

MaximizeButtonStyle

资源键全称:    {ComponentResourceKey ResourceId=MaximizeButtonStyle, TypeInTargetAssembly={x:Type pu:WindowXCaption}}
缩略资源键:    {pu:WindowXCaption.MaximizeButtonStyle}
在2.2.12-alpha之前,此资源键的名称为 WindowXMaximizeButtonStyle

窗体X的最大化按钮样式。

<Style x:Key="{ComponentResourceKey ResourceId=MaximizeButtonStyle, TypeInTargetAssembly={x:Type pu:WindowXCaption}}"
       TargetType="Button"
       BasedOn="{StaticResource {x:Static rs:StyleKeys.ButtonStyleKey}}">
    <Setter Property="Background"
            Value="Transparent" />
    <Setter Property="pu:ButtonHelper.HoverBackground"
            Value="#CCCCCC" />
    <Setter Property="pu:ButtonHelper.HoverForeground"
            Value="White" />
    <Setter Property="VerticalAlignment"
            Value="Top" />
    <Setter Property="HorizontalAlignment"
            Value="Right" />
    <Setter Property="Foreground"
            Value="{Binding Path=(pu:WindowXCaption.Foreground), RelativeSource={RelativeSource AncestorType=pu:WindowX}, Mode=OneWay}" />
    <Setter Property="Height"
            Value="{Binding Path=(pu:WindowXCaption.Height), RelativeSource={RelativeSource AncestorType=pu:WindowX}, Mode=OneWay}" />
    <Setter Property="Width"
            Value="{Binding Path=(pu:WindowXCaption.Height), Converter={StaticResource {x:Static pu:ConverterKeys.DoublePlusConverter}}, ConverterParameter=5,RelativeSource={RelativeSource AncestorType=pu:WindowX},Mode=OneWay}" />
    <Setter Property="MaxHeight"
            Value="35" />
    <Setter Property="MaxWidth"
            Value="40" />
    <Setter Property="Padding"
            Value="0" />
    <Setter Property="FontFamily"
            Value="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon" />
    <Setter Property="FontSize"
            Value="{Binding FontSize, Converter={StaticResource {x:Static pu:ConverterKeys.DoublePlusConverter}}, ConverterParameter=4, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
    <Setter Property="Content"
            Value="&#xe92b;" />
</Style>

MinimizeButtonStyleKey

资源键全称:    {ComponentResourceKey ResourceId=CloseButtonStyleKey, TypeInTargetAssembly={x:Type pu:WindowXCaption}}
缩略资源键:    {x:Static pu:WindowXCaption.CloseButtonStyleKey}
在2.2.12-alpha之前,此资源键的名称为 WindowXCloseButtonStyle

窗体X的关闭按钮样式。

<Style x:Key="{ComponentResourceKey ResourceId=MinimizeButtonStyleKey, TypeInTargetAssembly={x:Type pu:WindowXCaption}}"
       TargetType="Button"
       BasedOn="{StaticResource {x:Static rs:StyleKeys.ButtonStyleKey}}">
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="pu:ButtonHelper.HoverBackground" Value="#D64343" />
    <Setter Property="pu:ButtonHelper.HoverForeground" Value="White" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Setter Property="HorizontalAlignment" Value="Right" />
    <Setter Property="Foreground" Value="{Binding Path=(pu:WindowXCaption.Foreground), RelativeSource={RelativeSource AncestorType=pu:WindowX}, Mode=OneWay}" />
    <Setter Property="Height" Value="{Binding Path=(pu:WindowXCaption.Height), RelativeSource={RelativeSource AncestorType=pu:WindowX}, Mode=OneWay}" />
    <Setter Property="Width" Value="{Binding Path=(pu:WindowXCaption.Height), Converter={StaticResource {x:Static pu:ConverterKeys.DoublePlusConverter}}, ConverterParameter=5,RelativeSource={RelativeSource AncestorType=pu:WindowX},Mode=OneWay}" />
    <Setter Property="MaxHeight" Value="35" />
    <Setter Property="MaxWidth" Value="40" />
    <Setter Property="Padding" Value="0" />
    <Setter Property="FontFamily" Value="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon" />
    <Setter Property="FontSize" Value="{Binding FontSize, Converter={StaticResource {x:Static pu:ConverterKeys.DoublePlusConverter}}, ConverterParameter=4, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
    <Setter Property="Content" Value="&#xe92d;" />
</Style>