WPF布局控件

发布于:2025-02-24 ⋅ 阅读:(15) ⋅ 点赞:(0)

Border

属性

1. 布局与尺寸

属性 分类 功能说明
ActualHeight 布局 获取元素的实际渲染高度(继承自 FrameworkElement)。
ActualWidth 布局 获取元素的实际渲染宽度(继承自 FrameworkElement)。
Height 布局 设置或获取元素的建议高度(继承自 FrameworkElement)。
Width 布局 设置或获取元素的建议宽度(继承自 FrameworkElement)。
MinHeight 布局 元素的最小高度约束(继承自 FrameworkElement)。
MaxHeight 布局 元素的最大高度约束(继承自 FrameworkElement)。
MinWidth 布局 元素的最小宽度约束(继承自 FrameworkElement)。
MaxWidth 布局 元素的最大宽度约束(继承自 FrameworkElement)。
HorizontalAlignment 布局 元素在父容器中的水平对齐方式(继承自 FrameworkElement)。
VerticalAlignment 布局 元素在父容器中的垂直对齐方式(继承自 FrameworkElement)。
Margin 布局 元素的外边距(与父容器或其他元素的间距,继承自 FrameworkElement)。
Padding 布局 元素的内边距(与子元素的间距,仅某些容器支持,如 Border)。
DesiredSize 布局 布局计算中元素期望的尺寸(继承自 UIElement)。

2. 外观与渲染

属性 分类 功能说明
Background 外观 设置元素的背景画刷(如 Border 的背景色)。
BorderBrush 外观 边框颜色画刷(如 Border 的边框颜色)。
BorderThickness 外观 边框的粗细(如 Border 的边框厚度)。
CornerRadius 外观 边框圆角半径(如 Border 的圆角效果)。
Opacity 渲染 元素整体透明度(0-1,继承自 UIElement)。
OpacityMask 渲染 应用 Alpha 通道蒙板(基于画刷,继承自 UIElement)。
Effect 渲染 应用位图效果(如阴影、模糊,继承自 UIElement)。
RenderTransform 渲染 定义元素的渲染变换(如旋转、缩放,继承自 UIElement)。
RenderTransformOrigin 渲染 渲染变换的中心点(如绕中心旋转,继承自 UIElement)。
BitmapEffect 渲染(已过时) 过时的位图效果(不推荐使用,继承自 UIElement)。

3. 输入与交互

属性 分类 功能说明
AllowDrop 拖放 设置元素是否可作为拖放目标(继承自 UIElement)。
IsEnabled 交互 元素是否启用(禁用时无法交互,继承自 UIElement)。
Focusable 焦点 元素是否可以获取焦点(继承自 UIElement)。
IsHitTestVisible 交互 元素是否参与点击测试(继承自 UIElement)。
Cursor 交互 鼠标悬停时显示的光标(继承自 FrameworkElement)。

4. 焦点与键盘

属性 分类 功能说明
IsKeyboardFocused 焦点 元素是否具有键盘焦点(继承自 UIElement)。
IsKeyboardFocusWithin 焦点 元素或其子元素是否具有键盘焦点(继承自 UIElement)。
FocusVisualStyle 焦点 键盘焦点时的视觉样式(继承自 FrameworkElement)。

5. 触摸与触笔

属性 分类 功能说明
IsStylusCaptured 触笔 触笔是否被元素捕获(继承自 UIElement)。
TouchesCaptured 触摸 当前捕获的所有触摸设备(继承自 UIElement)。
AreAnyTouchesOver 触摸 触摸设备是否在元素或其子元素上(继承自 UIElement)。

6. 数据与绑定

属性 分类 功能说明
DataContext 数据 元素的数据上下文(用于绑定,继承自 FrameworkElement)。
BindingGroup 数据 绑定分组管理(继承自 FrameworkElement)。

7. 样式与资源

属性 分类 功能说明
Style 样式 元素的样式(继承自 FrameworkElement)。
Resources 资源 本地资源字典(继承自 FrameworkElement)。
OverridesDefaultStyle 样式 是否覆盖默认主题样式(继承自 FrameworkElement)。

8. 子元素与逻辑树

属性 分类 功能说明
Child 子元素 Decorator 的直接子元素(如 Border 的内容)。
LogicalChildren 逻辑树 逻辑子元素的枚举器(继承自 Decorator)。

9. 可视化树与渲染

属性 分类 功能说明
VisualChildrenCount 可视化树 可视化子元素的数量(继承自 Decorator)。
Clip 渲染 剪切元素内容的几何形状(继承自 UIElement)。
ClipToBounds 渲染 是否剪切内容以适应容器(继承自 UIElement)。

10. 过时属性

属性 分类 功能说明
BitmapEffectInput 渲染(已过时) 过时的位图效果输入(不推荐使用)。
PersistId 唯一标识(已过时) 过时的唯一标识符(继承自 UIElement)。

方法

1. 事件处理

方法 功能描述
AddHandler(RoutedEvent, Delegate) 为指定的路由事件添加事件处理程序。
AddHandler(RoutedEvent, Delegate, Boolean) 添加事件处理程序,并指定是否处理已被标记为“已处理”的事件。
RemoveHandler(RoutedEvent, Delegate) 移除指定的事件处理程序。
RaiseEvent(RoutedEventArgs) 触发指定的路由事件。

2. 布局与渲染

方法 功能描述
Arrange(Rect) 定位子元素并确定其大小。
ArrangeCore(Rect) 实现布局逻辑的核心方法。
Measure(Size) 计算元素的期望大小。
MeasureCore(Size) 实现测量逻辑的核心方法。
MeasureOverride(Size) 在自定义控件中重写以定义测量逻辑。
ArrangeOverride(Size) 在自定义控件中重写以定义布局逻辑。
OnRender(DrawingContext) 在渲染过程中绘制内容。
InvalidateArrange() 使布局状态无效,强制重新布局。
InvalidateMeasure() 使测量状态无效,强制重新测量。
InvalidateVisual() 使渲染状态无效,强制重新渲染。

3. 动画

方法 功能描述
BeginAnimation(DependencyProperty, AnimationTimeline) 为指定属性启动动画。
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) 启动动画并指定如何处理现有动画。
ApplyAnimationClock(DependencyProperty, AnimationClock) 将动画时钟应用到指定属性。
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) 应用动画时钟并指定如何处理现有动画。
GetAnimationBaseValue(DependencyProperty) 获取属性的基值(忽略动画效果)。

4. 焦点与输入

方法 功能描述
Focus() 尝试将焦点设置到当前元素。
CaptureMouse() 强制捕获鼠标输入。
CaptureStylus() 强制捕获触笔输入。
CaptureTouch(TouchDevice) 强制捕获触摸输入。
ReleaseMouseCapture() 释放鼠标捕获。
ReleaseStylusCapture() 释放触笔捕获。
ReleaseTouchCapture(TouchDevice) 释放指定触摸设备的捕获。
PredictFocus(FocusNavigationDirection) 预测焦点移动方向的下一个元素。

5. 资源与绑定

方法 功能描述
FindResource(Object) 查找指定键的资源。
TryFindResource(Object) 尝试查找指定键的资源。
SetBinding(DependencyProperty, BindingBase) 为指定属性设置绑定。
SetBinding(DependencyProperty, String) 为指定属性设置绑定,使用路径限定。
SetResourceReference(DependencyProperty, Object) 为指定属性设置资源引用。

6. 逻辑与可视化树

方法 功能描述
AddLogicalChild(Object) 将对象添加到逻辑树。
RemoveLogicalChild(Object) 从逻辑树中移除对象。
AddVisualChild(Visual) 将对象添加到可视化树。
RemoveVisualChild(Visual) 从可视化树中移除对象。
GetVisualChild(Int32) 获取指定索引的可视子元素。
OnVisualChildrenChanged(DependencyObject, DependencyObject) 当可视化子元素发生变化时调用。

7. 依赖属性

方法 功能描述
SetValue(DependencyProperty, Object) 设置依赖属性的值。
GetValue(DependencyProperty) 获取依赖属性的值。
ClearValue(DependencyProperty) 清除依赖属性的本地值。
CoerceValue(DependencyProperty) 强制转换依赖属性的值。
OnPropertyChanged(DependencyPropertyChangedEventArgs) 当依赖属性值更改时调用。

8. 模板与样式

方法 功能描述
ApplyTemplate() 应用控件的模板并生成可视化树。
OnApplyTemplate() 在模板应用时调用,用于自定义逻辑。
UpdateDefaultStyle() 重新应用默认样式。

9. 工具提示与上下文菜单

方法 功能描述
OnToolTipOpening(ToolTipEventArgs) 当工具提示打开时调用。
OnToolTipClosing(ToolTipEventArgs) 当工具提示关闭时调用。
OnContextMenuOpening(ContextMenuEventArgs) 当上下文菜单打开时调用。
OnContextMenuClosing(ContextMenuEventArgs) 当上下文菜单关闭时调用。

10. 拖放操作

方法 功能描述
OnDragEnter(DragEventArgs) 当拖拽进入元素时调用。
OnDragLeave(DragEventArgs) 当拖拽离开元素时调用。
OnDragOver(DragEventArgs) 当拖拽在元素上移动时调用。
OnDrop(DragEventArgs) 当拖拽释放时调用。

11. 触摸与手势

方法 功能描述
OnTouchDown(TouchEventArgs) 当触摸按下时调用。
OnTouchMove(TouchEventArgs) 当触摸移动时调用。
OnTouchUp(TouchEventArgs) 当触摸释放时调用。
OnManipulationStarted(ManipulationStartedEventArgs) 当操作(如缩放、旋转)开始时调用。
OnManipulationDelta(ManipulationDeltaEventArgs) 当操作进行时调用。
OnManipulationCompleted(ManipulationCompletedEventArgs) 当操作完成时调用。

12. 其他功能

方法 功能描述
BringIntoView() 将元素滚动到视图中。
TransformToVisual(Visual) 将坐标转换为相对于指定可视对象的坐标。
VerifyAccess() 确保调用线程具有访问权限。
ToString() 返回对象的字符串表示形式。

事件

1. 上下文菜单事件

事件 描述
ContextMenuClosing 在元素上的任何上下文菜单关闭之前发生。
ContextMenuOpening 在元素上的任何上下文菜单打开时发生。

2. 数据上下文事件

事件 描述
DataContextChanged 在此元素的数据上下文更改时发生。

3. 拖放事件

事件 描述
DragEnter 在输入系统报告出现以此元素为拖动目标的基础拖动事件时发生。
DragLeave 在输入系统报告出现以此元素为拖动起点的基础拖动事件时发生。
DragOver 在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。
Drop 在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。
GiveFeedback 在输入系统报告出现涉及此元素的基础拖放操作时发生。
PreviewDragEnter 在输入系统报告出现以此元素为拖动目标的基础拖动事件时发生(预览事件)。
PreviewDragLeave 在输入系统报告出现以此元素为拖动起点的基础拖动事件时发生(预览事件)。
PreviewDragOver 在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生(预览事件)。
PreviewDrop 在输入系统报告出现将此元素作为放置目标的基础放置事件时发生(预览事件)。
PreviewGiveFeedback 在开始拖放操作时发生(预览事件)。
QueryContinueDrag 在拖放操作期间键盘或鼠标按钮的状态改变时发生。
PreviewQueryContinueDrag 在拖放操作期间键盘或鼠标按钮的状态改变时发生(预览事件)。

4. 焦点事件

事件 描述
GotFocus 在此元素获得逻辑焦点时发生。
LostFocus 在此元素丢失逻辑焦点时发生。
GotKeyboardFocus 在此元素聚焦于键盘时发生。
LostKeyboardFocus 在此元素不再聚焦于键盘时发生。
PreviewGotKeyboardFocus 在此元素聚焦于键盘时发生(预览事件)。
PreviewLostKeyboardFocus 在此元素不再聚焦于键盘时发生(预览事件)。

5. 输入捕获事件

事件 描述
GotMouseCapture 在此元素捕获鼠标时发生。
LostMouseCapture 在此元素丢失鼠标捕获时发生。
GotStylusCapture 在此元素捕获触笔时发生。
LostStylusCapture 在此元素丢失触笔捕获时发生。
GotTouchCapture 在此元素上捕获触摸屏输入时发生。
LostTouchCapture 在此元素失去触摸屏输入捕获时发生。

6. 初始化与加载事件

事件 描述
Initialized 初始化此 FrameworkElement 时发生。
Loaded 当对元素进行布局、呈现,且可将其用于交互时发生。
Unloaded 当从加载的元素的元素树中移除元素时发生。

7. 键盘事件

事件 描述
KeyDown 当焦点在该元素上时按下某个键后发生。
KeyUp 当焦点在该元素上时松开某个键后发生。
PreviewKeyDown 当焦点在该元素上时按下某个键后发生(预览事件)。
PreviewKeyUp 当焦点在该元素上时松开某个键后发生(预览事件)。

8. 鼠标事件

事件 描述
MouseDown 在指针位于此元素上并且按下任意鼠标按钮时发生。
MouseUp 在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。
MouseEnter 在鼠标指针进入此元素的边界时发生。
MouseLeave 在鼠标指针离开此元素的边界时发生。
MouseLeftButtonDown 在鼠标指针位于此元素上并且按下鼠标左键时发生。
MouseLeftButtonUp 在鼠标指针位于此元素上并且松开鼠标左键时发生。
MouseRightButtonDown 在鼠标指针位于此元素上并且按下鼠标右键时发生。
MouseRightButtonUp 在鼠标指针位于此元素上并且松开鼠标右键时发生。
MouseMove 在鼠标指针位于此元素上并且移动鼠标指针时发生。
MouseWheel 在鼠标指针位于此元素上并且用户滚动鼠标滚轮时发生。
PreviewMouseDown 在指针位于此元素上并且按下任意鼠标按钮时发生(预览事件)。
PreviewMouseUp 在鼠标指针位于此元素上并且松开任意鼠标按钮时发生(预览事件)。
PreviewMouseLeftButtonDown 在鼠标指针位于此元素上并且按下鼠标左键时发生(预览事件)。
PreviewMouseLeftButtonUp 在鼠标指针位于此元素上并且松开鼠标左键时发生(预览事件)。
PreviewMouseRightButtonDown 在鼠标指针位于此元素上并且按下鼠标右键时发生(预览事件)。
PreviewMouseRightButtonUp 在鼠标指针位于此元素上并且松开鼠标右键时发生(预览事件)。
PreviewMouseMove 在鼠标指针位于此元素上并且移动鼠标指针时发生(预览事件)。
PreviewMouseWheel 在鼠标指针位于此元素上并且用户滚动鼠标滚轮时发生(预览事件)。

9. 触笔事件

事件 描述
StylusDown 在触笔位于此元素上且同时触及数字化器时发生。
StylusUp 当触笔位于此元素上并且用户将触笔抬离数字化器时发生。
StylusEnter 在触笔进入此元素的边界时发生。
StylusLeave 在触笔离开元素的边界时发生。
StylusMove 在触笔移到此元素上时发生。
StylusInAirMove 在触笔掠过元素但并未实际接触数字化器时发生。
StylusInRange 在触笔位于此元素上并且触笔与数字化器之间的距离近到足以检测到触笔时发生。
StylusOutOfRange 在触笔位于此元素上并且触笔与数字化器之间的距离太远以致无法检测到触笔时发生。
StylusSystemGesture 在用户采用某一种触笔笔势时发生。
StylusButtonDown 在指针位于此元素上并且按下触笔按钮时发生。
StylusButtonUp 在指针位于此元素上并且松开触笔按钮时发生。
PreviewStylusDown 当触笔位于元素上且触及数字化器时发生(预览事件)。
PreviewStylusUp 当触笔位于此元素上并且用户将触笔抬离数字化器时发生(预览事件)。
PreviewStylusMove 在触笔位于元素上并且移动触笔时发生(预览事件)。
PreviewStylusInAirMove 在触笔掠过元素但并未实际接触数字化器时发生(预览事件)。
PreviewStylusInRange 在触笔位于此元素上并且触笔与数字化器之间的距离近到足以检测到触笔时发生(预览事件)。
PreviewStylusOutOfRange 在触笔与数字化仪之间的距离太远以致无法检测到触笔时发生(预览事件)。
PreviewStylusSystemGesture 在用户采用某一种触笔笔势时发生(预览事件)。
PreviewStylusButtonDown 在指针位于此元素上并且按下触笔按钮时发生(预览事件)。
PreviewStylusButtonUp 在指针位于此元素上并且松开触笔按钮时发生(预览事件)。

10. 触摸事件

事件 描述
TouchDown 当悬停在此元素上方的手指触摸屏幕时发生。
TouchUp 当悬停在此元素上方的手指从屏幕上移开时发生。
TouchMove 当悬停在此元素上方的手指在屏幕上移动时发生。
TouchEnter 在触摸屏输入从此元素边界外部移动到其内部时发生。
TouchLeave 在触摸屏输入从此元素边界内部移动到其外部时发生。
PreviewTouchDown 当悬停在此元素上方的手指触摸屏幕时发生(预览事件)。
PreviewTouchUp 当悬停在此元素上方的手指从屏幕上移开时发生(预览事件)。
PreviewTouchMove 当悬停在此元素上方的手指在屏幕上移动时发生(预览事件)。

11. 工具提示事件

事件 描述
ToolTipClosing 在元素上的任何工具提示关闭之前发生。
ToolTipOpening 在元素上的任何工具提示打开时发生。

12. 布局与渲染事件

事件 描述
LayoutUpdated 在与当前 Dispatcher 关联的各种可视元素的布局更改时发生。
SizeChanged 当此元素上的 ActualHeight 或 ActualWidth 属性的值发生更改时发生。

13. 属性更改事件

事件 描述
FocusableChanged 当 Focusable 属性的值更改时发生。
IsEnabledChanged 在此元素的 IsEnabled 属性值更改时发生。
IsHitTestVisibleChanged 在此元素的 IsHitTestVisible 依赖项属性值更改时发生。
IsKeyboardFocusedChanged 在此元素的 IsKeyboardFocused 属性值更改时发生。
IsKeyboardFocusWithinChanged 在此元素的 IsKeyboardFocusWithin 属性值更改时发生。
IsMouseCapturedChanged 在此元素的 IsMouseCaptured 属性值更改时发生。
IsMouseCaptureWithinChanged 在此元素的 IsMouseCaptureWithinProperty 值更改时发生。
IsMouseDirectlyOverChanged 在此元素的 IsMouseDirectlyOver 属性值更改时发生。
IsStylusCapturedChanged 在此元素的 IsStylusCaptured 属性值更改时发生。
IsStylusCaptureWithinChanged 在此元素的 IsStylusCaptureWithin 属性值更改时发生。
IsStylusDirectlyOverChanged 在此元素的 IsStylusDirectlyOver 属性值更改时发生。
IsVisibleChanged 在此元素的 IsVisible 属性值更改时发生。

14. 绑定与资源事件

事件 描述
SourceUpdated 当此元素上的任何现有属性绑定的源值发生更改时发生。
TargetUpdated 当此元素上的任何属性绑定的目标值发生更改时发生。

15. 文本输入事件

事件 描述
TextInput 在此元素以设备无关模式获取文本时发生。
PreviewTextInput 在此元素以设备无关模式获取文本时发生(预览事件)。

16. 操作与手势事件

事件 描述
ManipulationStarted 当输入设备对 UIElement 对象开始操作时发生。
ManipulationDelta 当输入设备在操作期间更改位置时发生。
ManipulationCompleted 对于 UIElement 对象的操作和延时完毕时发生。
ManipulationInertiaStarting 当输入设备在操作期间与 UIElement 对象失去联系且延时开始时发生。
ManipulationBoundaryFeedback 当操作遇到边界时发生。

17. 光标与查询事件

事件 描述
QueryCursor 当请求显示光标时发生。

18. 其他事件

事件 描述
RequestBringIntoView 当在此元素上调用 BringIntoView(Rect) 时发生。