Shape 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public ref class Shape : FrameworkElement
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Shape : FrameworkElement
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Shape : FrameworkElement
Public Class Shape
Inherits FrameworkElement
- 继承
- 派生
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
示例
有关如何使用 Shape 派生类(如 Rectangle 和 Path)的示例代码,请参阅 基于 XAML 矢量的绘图示例。
注解
Shape 定义由所有 Shape 派生类共享的多个属性。 最常用的属性是 Fill、 Stroke 和 StrokeThickness。 笔划 使用 画笔 绘制形状的轮廓, 而 Fill 使用 画笔 绘制内部。 有关如何在 XAML UI 中使用 Shape 派生类的详细信息,请参阅 绘制形状。
Shape 也派生自 FrameworkElement ,并从该类继承各种属性。 这些属性包括 Height 和 Width。 对于大多数其他 FrameworkElement 派生类型,设置 Height 和 Width 是在 UI (中指定该元素维度的主要方法,尽管你通常会将它们保留为“自动”,以利用自适应布局) 。 但并非所有 Shape 类都使用 Height 或 Width 来指定其尺寸,而是使用可能定义一组点的特定属性。 在本例中,为布局计算 Height 或 Width ,但不应尝试设置 Height 或 Width。 有关详细信息,请参阅特定 Shape 派生类中的备注或说明。
由于 Shape 派生类是 UI 元素,因此可用作容器(如控件和面板)的内容。 它们在 UI 中具有实际存在;例如,它们可以使用输入事件进行命中测试,报告布局所需的大小,等等。 XAML 还有其他不是 UI 元素的图形定义类。 这些主要存在于 Windows.UI.Xaml.Media 命名空间中。 此类图形类的示例包括 Geometry 类型、 PathFigure 类型和 PathSegment 类型。
形状 派生类
Shape 是多个直接派生类的父类,这些类定义用作 UI 元素的基元形状:
- 椭圆形
- Line
- 路径
- 多边形
- 折线
- 矩形 其中, 矩形、 路径 和 椭圆 可能是最常用的。 矩形 通常用作控件组合的一部分,用于绘制焦点矩形。 Path 用于控制字形,也用于 PathIcon 内容。 椭圆 形用于包含圆圈的控件组合,特别是在进度控件中。
版本历史记录
Windows 版本 | SDK 版本 | 增值 |
---|---|---|
1607 | 14393 | GetAlphaMask |
构造函数
Shape() |
为 Shape 派生类提供基类初始化行为。 |
属性
AccessKey |
获取或设置此元素的访问键 (助记键) 。 (继承自 UIElement) |
AccessKeyScopeOwner |
获取或设置一个源元素,该元素为此元素提供访问键范围,即使它不在源元素的可视化树中也是如此。 (继承自 UIElement) |
ActualHeight |
获取 FrameworkElement 的呈现高度。 请参阅“备注”。 (继承自 FrameworkElement) |
ActualOffset |
获取在布局过程的排列传递期间计算的此 UIElement 相对于其父级的位置。 (继承自 UIElement) |
ActualSize |
获取此 UIElement 在布局过程的排列过程中计算的大小。 (继承自 UIElement) |
ActualTheme |
获取元素当前使用的 UI 主题,该主题可能与 RequestedTheme 不同。 (继承自 FrameworkElement) |
ActualWidth |
获取 FrameworkElement 的呈现宽度。 请参阅“备注”。 (继承自 FrameworkElement) |
AllowDrop |
获取或设置一个值,该值确定此 UIElement 是否可以作为拖放操作的放置目标。 (继承自 UIElement) |
AllowFocusOnInteraction |
获取或设置一个值,该值指示当用户与元素交互时是否自动获取焦点。 (继承自 FrameworkElement) |
AllowFocusWhenDisabled |
获取或设置禁用的控件是否可以接收焦点。 (继承自 FrameworkElement) |
BaseUri |
获取统一资源标识符 (URI) ,表示 XAML 加载时 XAML 构造对象的基本统一资源标识符 (URI) 。 此属性在运行时用于统一资源标识符 (URI) 解析。 (继承自 FrameworkElement) |
CacheMode |
获取或设置一个值,该值指示呈现的内容应尽可能缓存为复合位图。 (继承自 UIElement) |
CanBeScrollAnchor |
获取或设置一个值,该值指示 UIElement 是否可以作为滚动定位的候选项。 (继承自 UIElement) |
CanDrag |
获取或设置一个值,该值指示是否可以在拖放操作中将元素作为数据拖动。 (继承自 UIElement) |
CenterPoint |
获取或设置元素的中心点,即发生旋转或缩放的点。 影响元素的呈现位置。 (继承自 UIElement) |
Clip |
获取或设置用于定义 UIElement 内容的轮廓的 RectangleGeometry。 (继承自 UIElement) |
CompositeMode |
获取或设置一个属性,该属性为其父布局和窗口中的元素声明备用组合和混合模式。 这与混合 XAML/Microsoft DirectX UI 中涉及的元素相关。 (继承自 UIElement) |
ContextFlyout |
获取或设置与此元素关联的浮出控件。 (继承自 UIElement) |
DataContext |
获取或设置 FrameworkElement 的数据上下文。 数据上下文的常见用途是 当 FrameworkElement 使用 {Binding} 标记扩展并参与数据绑定时。 (继承自 FrameworkElement) |
DesiredSize |
获取此 UIElement 在布局过程的度量传递期间计算的大小。 (继承自 UIElement) |
Dispatcher |
获取与此对象关联的 CoreDispatcher 。 CoreDispatcher 表示可以访问 UI 线程上的 DependencyObject 的工具,即使代码是由非 UI 线程启动的。 (继承自 DependencyObject) |
ExitDisplayModeOnAccessKeyInvoked |
获取或设置一个值,该值指定在调用访问密钥时是否消除访问键显示。 (继承自 UIElement) |
Fill |
获取或设置画 笔 ,用于绘制形状的内部区域。 |
FillProperty |
标识 Fill 依赖属性。 |
FlowDirection |
获取或设置文本和其他 UI 元素在控制其布局的任何父元素中的流动方向。 此属性可以设置为 LeftToRight 或 RightToLeft。 在任何元素上将 FlowDirection 设置为 RightToLeft 会将对齐方式设置为右对齐,将阅读顺序设置为从右到左,并将控件的布局设置为从右到左流动。 (继承自 FrameworkElement) |
FocusVisualMargin |
获取或设置 FrameworkElement 的焦点视觉对象的外部边距。 (继承自 FrameworkElement) |
FocusVisualPrimaryBrush |
获取或设置用于为 FrameworkElement 绘制或 |
FocusVisualPrimaryThickness |
获取或设置 FrameworkElement 或 |
FocusVisualSecondaryBrush |
获取或设置用于为 FrameworkElement 绘制或 |
FocusVisualSecondaryThickness |
获取或设置 FrameworkElement 或 |
GeometryTransform | |
Height |
获取或设置 FrameworkElement 的建议高度。 (继承自 FrameworkElement) |
HighContrastAdjustment |
获取或设置一个值,该值指示在启用高对比度主题时框架是否自动调整元素的视觉属性。 (继承自 UIElement) |
HorizontalAlignment |
获取或设置在布局父级(如面板或项控件)中组合时应用于 FrameworkElement 的水平对齐特征。 (继承自 FrameworkElement) |
IsAccessKeyScope |
获取或设置一个值,该值指示元素是否定义其自己的访问键范围。 (继承自 UIElement) |
IsDoubleTapEnabled |
获取或设置一个值,该值确定 DoubleTapped 事件是否可以源自该元素。 (继承自 UIElement) |
IsHitTestVisible |
获取或设置此 UIElement 的包含区域是否可以为命中测试返回 true 值。 (继承自 UIElement) |
IsHoldingEnabled |
获取或设置一个值,该值确定 Holding 事件是否可以源自该元素。 (继承自 UIElement) |
IsLoaded |
获取一个值,该值指示元素是否已添加到元素树中并已准备好进行交互。 (继承自 FrameworkElement) |
IsRightTapEnabled |
获取或设置一个值,该值确定 RightTapped 事件是否可以源自该元素。 (继承自 UIElement) |
IsTapEnabled |
获取或设置一个值,该值确定 Tapped 事件是否可以源自该元素。 (继承自 UIElement) |
KeyboardAcceleratorPlacementMode |
获取或设置一个值,该值指示控件 工具提示 是否显示其关联的键盘快捷键的组合键。 (继承自 UIElement) |
KeyboardAcceleratorPlacementTarget |
获取或设置一个值,该值指示显示快捷键组合的控件 工具提示 。 (继承自 UIElement) |
KeyboardAccelerators |
获取使用键盘调用操作的组合键的集合。 加速器通常分配给按钮或菜单项。
|
KeyTipHorizontalOffset |
获取或设置一个值,该值指示键提示相对于 UIElement 的左或右放置距离。 (继承自 UIElement) |
KeyTipPlacementMode |
获取或设置一个值,该值指示相对于 UIElement 边界放置访问键提示的位置。 (继承自 UIElement) |
KeyTipTarget |
获取或设置一个值,该值指示访问键提示所针对的元素。 (继承自 UIElement) |
KeyTipVerticalOffset |
获取或设置一个值,该值指示键提示相对于 UI 元素的放置距离。 (继承自 UIElement) |
Language |
获取或设置适用于 FrameworkElement 以及对象表示形式和 UI 中当前 FrameworkElement 的所有子元素的本地化/全球化语言信息。 (继承自 FrameworkElement) |
Lights |
获取附加到此元素的 XamlLight 对象的集合。 (继承自 UIElement) |
ManipulationMode |
获取或设置用于 UIElement 行为和手势交互的 ManipulationModes 值。 设置此值可处理应用代码中此元素的操作事件。 (继承自 UIElement) |
Margin |
获取或设置 FrameworkElement 的外部边距。 (继承自 FrameworkElement) |
MaxHeight |
获取或设置 FrameworkElement 的最大高度约束。 (继承自 FrameworkElement) |
MaxWidth |
获取或设置 FrameworkElement 的最大宽度约束。 (继承自 FrameworkElement) |
MinHeight |
获取或设置 FrameworkElement 的最小高度约束。 (继承自 FrameworkElement) |
MinWidth |
获取或设置 FrameworkElement 的最小宽度约束。 (继承自 FrameworkElement) |
Name |
获取或设置对象的标识名称。 当 XAML 处理器从 XAML 标记创建对象树时,运行时代码可以按此名称引用 XAML 声明的对象。 (继承自 FrameworkElement) |
Opacity |
获取或设置对象的不透明度的程度。 (继承自 UIElement) |
OpacityTransition |
获取或设置对 Opacity 属性的更改进行动画处理的 ScalarTransition。 (继承自 UIElement) |
Parent |
获取对象树中此 FrameworkElement 的父对象。 (继承自 FrameworkElement) |
PointerCaptures |
获取所有捕获的指针的集合,表示为 Pointer 值。 (继承自 UIElement) |
Projection |
获取或设置呈现此元素时要应用的透视投影 (三维效果) 。 (继承自 UIElement) |
RenderSize |
获取 UIElement 的最终呈现大小。 不建议使用 ,请参阅备注。 (继承自 UIElement) |
RenderTransform |
获取或设置影响 UIElement 呈现位置的转换信息。 (继承自 UIElement) |
RenderTransformOrigin |
获取或设置 RenderTransform 声明的任何可能的呈现转换相对于 UIElement 边界的原点。 (继承自 UIElement) |
RequestedTheme |
获取或设置 UIElement (使用的 UI 主题及其子元素) 用于资源确定。 使用 RequestedTheme 指定的 UI 主题可以替代应用级 RequestedTheme。 (继承自 FrameworkElement) |
Resources |
获取本地定义的资源字典。 在 XAML 中,可以通过 XAML 隐式集合语法将资源项建立为属性元素的 |
Rotation |
获取或设置顺时针旋转的角度(以度为单位)。 相对于 RotationAxis 和 CenterPoint 旋转。 影响元素的呈现位置。 (继承自 UIElement) |
RotationAxis |
获取或设置要围绕元素旋转的轴。 (继承自 UIElement) |
RotationTransition |
获取或设置对 Rotation 属性的更改进行动画处理的 ScalarTransition。 (继承自 UIElement) |
Scale |
获取或设置元素的刻度。 相对于元素的 CenterPoint 缩放。 影响元素的呈现位置。 (继承自 UIElement) |
ScaleTransition |
获取或设置对 Scale 属性的更改进行动画处理的 Vector3Transition。 (继承自 UIElement) |
Shadow |
获取或设置元素投射的阴影效果。 (继承自 UIElement) |
Stretch |
获取或设置一个 Stretch 枚举值,该值描述形状如何填充其分配的空间。 |
StretchProperty |
标识 Stretch 依赖属性。 |
Stroke | |
StrokeDashArray |
获取或设置 Double 值的集合,该值指示用于轮廓形状的短划线和间隙的图案。 |
StrokeDashArrayProperty |
标识 StrokeDashArray 依赖属性。 |
StrokeDashCap |
获取或设置一个 PenLineCap 枚举值,该值指定如何绘制短划线的终点。 |
StrokeDashCapProperty |
标识 StrokeDashCap 依赖属性。 |
StrokeDashOffset |
获取或设置一个值,该值指定短划线图案中短划线开始的距离。 |
StrokeDashOffsetProperty |
标识 StrokeDashOffset 依赖属性。 |
StrokeEndLineCap |
获取或设置一个 PenLineCap 枚举值,该值描述线条末尾的形状。 |
StrokeEndLineCapProperty |
标识 StrokeEndLineCap 依赖属性。 |
StrokeLineJoin |
获取或设置一个 PenLineJoin 枚举值,该值指定在 Shape 顶点处使用的联接类型。 |
StrokeLineJoinProperty |
标识 StrokeLineJoin 依赖属性。 |
StrokeMiterLimit |
获取或设置斜接长度与 Shape 元素 StrokeThick 的一半之比的限制。 |
StrokeMiterLimitProperty |
标识 StrokeMiterLimit 依赖属性。 |
StrokeProperty |
标识 Stroke 依赖属性。 |
StrokeStartLineCap |
获取或设置一个 PenLineCap 枚举值,该值描述 Stroke 开头的形状。 |
StrokeStartLineCapProperty |
标识 StrokeStartLineCap 依赖属性。 |
StrokeThickness |
获取或设置 形状 笔划轮廓的宽度。 |
StrokeThicknessProperty |
标识 StrokeThickness 依赖属性。 |
Style |
获取或设置在布局和呈现期间为此对象应用的实例 Style 。 (继承自 FrameworkElement) |
TabFocusNavigation |
获取或设置一个值,该值修改 Tabbing 和 TabIndex 对此控件的工作方式。 (继承自 UIElement) |
Tag |
获取或设置可用于存储有关此对象的自定义信息的任意对象值。 (继承自 FrameworkElement) |
Transform3D |
获取或设置呈现此元素时要应用的三维转换效果。 (继承自 UIElement) |
TransformMatrix |
获取或设置要应用于元素的转换矩阵。 (继承自 UIElement) |
Transitions |
获取或设置应用于 UIElement 的 Transition 样式元素的集合。 (继承自 UIElement) |
Translation |
获取或设置元素的 x、y 和 z 呈现位置。 (继承自 UIElement) |
TranslationTransition |
获取或设置对 Translation 属性的更改进行动画处理的 Vector3Transition。 (继承自 UIElement) |
Triggers |
获取为 FrameworkElement 定义的动画触发器的集合。 不常用。 请参阅“备注”。 (继承自 FrameworkElement) |
UIContext |
获取 元素的上下文标识符。 (继承自 UIElement) |
UseLayoutRounding |
获取或设置一个值,该值确定对象及其可视子树的呈现是否应使用使呈现与整个像素对齐的舍入行为。 (继承自 UIElement) |
VerticalAlignment |
获取或设置在父对象(如面板或项控件)中组合时应用于 FrameworkElement 的垂直对齐特征。 (继承自 FrameworkElement) |
Visibility |
获取或设置 UIElement 的可见性。 不可见的 UIElement 不会呈现,也不会将其所需大小传达给布局。 (继承自 UIElement) |
Width |
获取或设置 FrameworkElement 的宽度。 (继承自 FrameworkElement) |
XamlRoot |
获取或设置 |
XYFocusDownNavigationStrategy |
获取或设置一个值,该值指定用于确定向下导航的目标元素的策略。 (继承自 UIElement) |
XYFocusKeyboardNavigation |
获取或设置一个值,该值使用键盘方向箭头启用或禁用导航。 (继承自 UIElement) |
XYFocusLeftNavigationStrategy |
获取或设置一个值,该值指定用于确定左侧导航的目标元素的策略。 (继承自 UIElement) |
XYFocusRightNavigationStrategy |
获取或设置一个值,该值指定用于确定右侧导航的目标元素的策略。 (继承自 UIElement) |
XYFocusUpNavigationStrategy |
获取或设置一个值,该值指定用于确定向上导航的目标元素的策略。 (继承自 UIElement) |
方法
事件
AccessKeyDisplayDismissed |
在不应再显示访问密钥时发生。 (继承自 UIElement) |
AccessKeyDisplayRequested |
当用户请求显示访问密钥时发生。 (继承自 UIElement) |
AccessKeyInvoked |
当用户完成访问键序列时发生。 (继承自 UIElement) |
ActualThemeChanged |
在 ActualTheme 属性值更改时发生。 (继承自 FrameworkElement) |
BringIntoViewRequested |
在此元素或其后代之一上调用 StartBringIntoView 时发生。 (继承自 UIElement) |
CharacterReceived |
输入队列收到单个组合字符时发生。 (继承自 UIElement) |
ContextCanceled |
当上下文输入手势继续为操作手势时发生,以通知元素不应打开上下文浮出控件。 (继承自 UIElement) |
ContextRequested |
当用户完成上下文输入手势(例如右键单击)时发生。 (继承自 UIElement) |
DataContextChanged |
在 FrameworkElement.DataContext 属性的值更改时发生。 (继承自 FrameworkElement) |
DoubleTapped |
在此元素的命中测试区域上发生未经处理的 DoubleTap 交互时发生。 (继承自 UIElement) |
DragEnter |
当输入系统报告将此元素作为目标的基础拖动事件时发生。 (继承自 UIElement) |
DragLeave |
当输入系统报告将此元素作为原点的基础拖动事件时发生。 (继承自 UIElement) |
DragOver |
在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。 (继承自 UIElement) |
DragStarting |
在启动拖动操作时发生。 (继承自 UIElement) |
Drop |
在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。 (继承自 UIElement) |
DropCompleted |
结束此元素作为源的拖放操作时发生。 (继承自 UIElement) |
EffectiveViewportChanged |
在 FrameworkElement的有效视区 更改时发生。 (继承自 FrameworkElement) |
GettingFocus |
在 UIElement 接收焦点之前发生。 此事件是同步引发的,以确保在事件冒泡时不会移动焦点。 (继承自 UIElement) |
GotFocus |
在 UIElement 接收焦点时发生。 此事件以异步方式引发,因此焦点可以在冒泡完成之前再次移动。 (继承自 UIElement) |
Holding |
在此元素的命中测试区域上发生未处理的 保留 交互时发生。 (继承自 UIElement) |
KeyDown |
当 UIElement 具有焦点时按下键盘键时发生。 (继承自 UIElement) |
KeyUp |
在 UIElement 具有焦点时释放键盘键时发生。 (继承自 UIElement) |
LayoutUpdated |
当可视化树的布局更改时发生,因为布局相关的属性更改值或刷新布局的其他操作。 (继承自 FrameworkElement) |
Loaded |
在已构造 FrameworkElement 并将其添加到对象树中并准备好交互时发生。 (继承自 FrameworkElement) |
Loading |
在开始加载 FrameworkElement 时发生。 (继承自 FrameworkElement) |
LosingFocus |
在 UIElement 失去焦点之前发生。 此事件是同步引发的,以确保在事件冒泡时不会移动焦点。 (继承自 UIElement) |
LostFocus |
当 UIElement 失去焦点时发生。 此事件以异步方式引发,因此焦点可以在冒泡完成之前再次移动。 (继承自 UIElement) |
ManipulationCompleted |
在 UIElement 上的操作完成时发生。 (继承自 UIElement) |
ManipulationDelta |
当输入设备在操作期间更改位置时发生。 (继承自 UIElement) |
ManipulationInertiaStarting |
在输入设备在操作期间与 UIElement 对象失去联系和延迟开始时发生。 (继承自 UIElement) |
ManipulationStarted |
在输入设备在 UIElement 上开始操作时发生。 (继承自 UIElement) |
ManipulationStarting |
在首次创建操作处理器时发生。 (继承自 UIElement) |
NoFocusCandidateFound |
当用户尝试通过制表键或方向箭头 (移动焦点) ,但焦点不会移动时发生,因为移动方向上找不到焦点候选项。 (继承自 UIElement) |
PointerCanceled |
当进行接触的指针异常失去接触时发生。 (继承自 UIElement) |
PointerCaptureLost |
当此元素以前持有的指针捕获移动到另一个元素或其他位置时发生。 (继承自 UIElement) |
PointerEntered |
当指针进入此元素的命中测试区域时发生。 (继承自 UIElement) |
PointerExited |
当指针离开此元素的命中测试区域时发生。 (继承自 UIElement) |
PointerMoved |
当指针在指针停留在此元素的命中测试区域内时移动时发生。 (继承自 UIElement) |
PointerPressed |
当指针设备在此元素中启动 Press 操作时发生。 (继承自 UIElement) |
PointerReleased |
在释放之前启动 按下 操作的指针设备时发生,同时在此元素中。 请注意, 不保证按下 操作的结尾会触发 PointerReleased 事件;可能会触发其他事件。 有关详细信息,请参阅备注。 (继承自 UIElement) |
PointerWheelChanged |
在指针滚轮的增量值更改时发生。 (继承自 UIElement) |
PreviewKeyDown |
当 UIElement 具有焦点时按下键盘键时发生。 (继承自 UIElement) |
PreviewKeyUp |
在 UIElement 具有焦点时释放键盘键时发生。 (继承自 UIElement) |
ProcessKeyboardAccelerators |
按下 键盘快捷方式 (或快捷键) 时发生。 (继承自 UIElement) |
RightTapped |
当指针位于 元素上时发生右点击输入刺激时发生。 (继承自 UIElement) |
SizeChanged |
当 ActualHeight 或 ActualWidth 属性更改 FrameworkElement 上的值时发生。 (继承自 FrameworkElement) |
Tapped |
在此元素的命中测试区域上发生未经处理的 点击 交互时发生。 (继承自 UIElement) |
Unloaded |
当此对象不再连接到main对象树时发生。 (继承自 FrameworkElement) |