• 【WPF系列】- Window详解


    WPF系列】- Window详解

    一、概述

    用户通过窗口与Windows Presentation Foundation(WPF)应用程序交互。窗口的主要用途是托管使用数据可视化并使用户能够与数据交互的内容。WPF应用程序使用Window类提供自己的窗口。

    二、WPF中Window类

    • 显示窗口
    • 配置窗口的大小,位置和外观
    • 托管特定于应用程序的内容
    • 管理窗口的生存期

    三、Window类实现

    Window分为两个区域:非工作区(Non-Clinet Area)和工作区(Client Area)。

    其中的非工作区是由WPF实现的,包括大多数Window共有的部分,包括:

    • Border : 边框

    • Title:标题

    • Icon:图标

    • Minimize, Maximize, Restore Button: 最小化, 最大化, 还原 按钮

    • Close Button : 关闭按钮

    • System Menu : 系统菜单

    • Resize Grip : 调整大小拖动块

    四、Window属性

    序号属性名称说明
    1ActualHeight获取此元素的呈现高度
    2ActualWidth获取此元素的呈现宽度
    3AllowDrop获取或设置一个值,该值指示此元素能否用作拖放操作的目标。 这是依赖项属性
    4AllowTransparency获取或设置一个值,该值指示窗口的工作区是否支持透明。
    5AreAnyTouchesCaptured获取一个值,该值指示在此元素上是否至少捕获了一次触摸。
    6AreAnyTouchesCaptureWithin获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少捕获了一次触摸。
    7AreAnyTouchesDirectlyOver获取一个值,该值指示在此元素上是否至少按下了一次触摸设备
    8AreAnyTouchesOver获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少按下了一次触摸设备。
    9Backgound获取或设置一个用于描述控件背景的画笔
    10BindingGroup获取或设置用于该元素的BindingGroup
    11BorderBrush获取或设置一个用于描述控件的边框背景的画笔
    12BorderThickness获取或设置控件的边框宽度
    13CacheMode获取或设置UIElement的缓存表示形式
    14Clip获取或设置用于定义元素内容轮廓的几何图形。 这是依赖项属性。
    15ClipToBounds获取或设置一个值,该值指示是否剪切此元素的内容(或来自此元素的子元素的内容)使其适合包含元素的大小。 这是依赖项属性。
    16CommandBindings获取与此元素关联的CommandBinding对象的集合。CommandBinding为此元素启用命令处理,并声明命令,命令的事件和由此元素附加的处理程序之间的链接。
    17Content获取或设置ContentControl的内容
    18ContentStringFormat获取或设置一个撰写字符串,该字符串指定如果Content属性显示为字符串,应如何设置该属性的格式
    19ContentTemplate获取或设置用于显示ContentControl内容的数据模板
    20ContentTemplateSelector获取或设置一个模板选择器,以使应用程序编写器能够提供自定义模板选择逻辑
    21ContextMenu获取或设置上下文菜单元素,每当通过用户界面 (UI 从此元素内) 请求上下文菜单时,应显示该元素。
    22Cursor获取或设置在鼠标指针位于此元素上时显示的光标。
    23DataContext获取或设置元素参与数据绑定时的数据上下文
    24DefaultStyleKey获取或设置在使用或定义主题样式时要用于引用此控件样式的键
    25DependencyObjectTypeDependencyObjectType获取包装此实例CLR类型的
    26DesiredSize获取在布局流程的度量传递过程中此元素计算所得的大小。
    27DialogResult获取或设置对话框结果值,此值是从 ShowDialog()方法返回的值。
    28Effect获取或设置需要应用于UIElement的位图效果。这是依赖项属性
    29FlowDirection获取或设置一个值,该值指示元素能否得到焦点。这是依赖项属性。
    30Focusable获取或设置一个值,该值指示元素能否得到焦点。 这是依赖项属性。
    31FocusVisualStyle获取或设置一个属性,该属性允许自定义此元素在捕获到键盘焦点时要应用于此元素的外观、效果或其他样式特征。
    32FontFamily获取或设置控件的字体系列。
    33FontSize获取或设置字号。
    34FontStretch获取或设置字体在屏幕上紧缩或加宽的程度
    35FontStyle获取或设置字体样式
    36FontWeight获取或设置指定字体的粗细。
    37ForceCursor获取或设置一个值,该值指示这是否FrameworkElement应强制用户界面(UI)呈现由属性声明的Cursor光标。
    38Forceground获取或设置一个用于描述前景色的画笔。
    39HandlesScrolling获取一个值,该值指示控件是否支持滚动。
    40HasAnimatedProperties获取一个值,该值指示此元素是否具有任何进行动画处理的属性。
    41HasContent获取一个值,该值指示 ContentControl是否包含内容
    42HasEffectiveKeyboardFocus获取一个值,该值指示UIElement是否具有焦点
    43Height获取或设置元素的建议高度。
    44HorizontalAlignment获取或设置在父元素(如 Panel 或项控件)中组合此元素时所应用的水平对齐特征。
    45HorizontalContentAlignment获取或设置控件内容的水平对齐方式。
    46Icon获取或设置窗口的图标
    47InputBindings获取与此元素关联的输入绑定的集合。
    48InputScope获取或设置此FrameworkElement使用的输入的上下文
    49IsActive获取一个值,该值指示窗口是否为活动窗口
    50IsArrangeValid获取一个值,该值指示此元素布局中的子元素的计算大小和位置是否有效
    51Left获取或设置窗口左边缘相对于桌面的位置。
    52Name获取或设置元素的标识名称。 该名称提供引用,以便代码隐藏(如事件处理程序代码)在 XAML 处理器处理期间构造标记元素后可以引用它。
    53Opacity获取或设置在用户界面 (UI) 呈现时应用于整个 UIElement的不透明度因子。 这是依赖项属性。
    54Style获取或设置此元素呈现时所使用的样式。
    55Template获取或设置控件模板。
    56VerticalAlignment获取或设置在父元素(如面板或项控件)中组合此元素时所应用的垂直对齐特征。
    57Visibility获取或设置用户界面 (UI) 此元素的可见性。 这是依赖项属性
    58Width获取或设置元素的宽度。
    59WindowStartupLocation获取或设置窗口首次显示时的位置。
    60WindowState获取或设置一个值,该值指示窗口是处于还原、最小化还是最大化状态。
    61WindowStyle获取或设置窗口的边框样式。

    五、方法

    序号方法名说明
    1Activate尝试将窗口置于前台并激活它
    2AddChild(Object)将指定对象作为ContentControl的子级添加
    3AddHandler(RoutedEvent,Delegate)为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。
    4AddText(String)将指定文本字符串添加到ContentControl中
    5Close()手动关闭Window
    6FindName(String)查找具有提供的标识符名的元素。
    7FindResource(Object)搜索具有指定密钥的资源,如果未找到请求的资源,则会引发异常。
    8Focus()尝试将焦点设定到此元素上。
    9Hide()使窗口不可见
    10Show()打开窗口并返回,而不等待新打开的窗口关闭
    11ShowDialog()打开一个窗口,并且仅在新打开的窗口关闭后才返回

    六、事件

    序号事件名说明
    1Activated在窗口成为前台窗口时发生。
    2Closed在窗口即将关闭时发生。
    3Closing在调用Close()之后立即发生,并且可进行处理以取消关闭窗口
    4DataContextChanged在此元素的数据上下文更改时发生。
    5Deactivated在窗口成为后台窗口时发生。
    6GotFocus在此元素获得逻辑焦点时发生。
    7Loaded当对元素进行布局、呈现,且可将其用于交互时发生。
    8LocationChanged在窗口的位置改变时发生。
    9MouseDoubleClick在双击或多次单击鼠标按钮时发生。
    10MouseDown在指针位于此元素上并且按下任意鼠标按钮时发生。
    11MouseEnter在鼠标指针进入此元素的边界时发生。
    12MouseLeave在鼠标指针离开此元素的边界时发生。
    13MouseLeftButtonDown在鼠标指针位于此元素上并且按下鼠标左键时发生。
    14MouseMove在鼠标指针位于此元素上并且移动鼠标指针时发生。
    15MouseUp在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。
    16SizeChanged当此元素上的ActualHeight或ActualWidth属性的值发生更改时发生
    17StateChanged在窗口的WindowState属性更改时发生
    18Unloaded当从加载的元素的元素树中移除元素时发生。

    七、参考

    https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.window?view=windowsdesktop-7.0

  • 相关阅读:
    微信小程序自定义组件Tabs及会议管理,投票管理与个人中心开发指南
    anaconda,python,VSCode
    计算机网络第六章——应用层(下)
    JAVA培训之连接查询之子查询
    PLC和工控机的网络特性
    贪心算法活动选择问题
    带你玩转CompletableFuture异步编程
    西安交大转子数据集故障诊断(Python代码,MSCNN结合LSTM结合注意力机制模型)
    基于ts泛型实现的提示友好型事件管理器
    软件测试 —— 常见的自动化测试架构!
  • 原文地址:https://blog.csdn.net/songjianlong/article/details/134411881