UIElement3D 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
UIElement3D 是 WPF 核心级实现的基类,这些实现是在 Windows Presentation Foundation (WPF) 元素和基本表示特性上生成的。
public ref class UIElement3D abstract : System::Windows::Media::Media3D::Visual3D, System::Windows::IInputElement
public abstract class UIElement3D : System.Windows.Media.Media3D.Visual3D, System.Windows.IInputElement
type UIElement3D = class
inherit Visual3D
interface IInputElement
Public MustInherit Class UIElement3D
Inherits Visual3D
Implements IInputElement
- 继承
- 派生
- 实现
示例
以下示例演示如何从 UIElement3D 类派生以创建 Sphere
类:
public class Sphere : UIElement3D
{
// OnUpdateModel is called in response to InvalidateModel and provides
// a place to set the Visual3DModel property.
//
// Setting Visual3DModel does not provide parenting information, which
// is needed for data binding, styling, and other features. Similarly, creating render data
// in 2-D does not provide the connections either.
//
// To get around this, we create a Model dependency property which
// sets this value. The Model DP then causes the correct connections to occur
// and the above features to work correctly.
//
// In this update model we retessellate the sphere based on the current
// dependency property values, and then set it as the model. The brush
// color is blue by default, but the code can easily be updated to let
// this be set by the user.
protected override void OnUpdateModel()
{
GeometryModel3D model = new GeometryModel3D();
model.Geometry = Tessellate(ThetaDiv, PhiDiv, Radius);
model.Material = new DiffuseMaterial(System.Windows.Media.Brushes.Blue);
Model = model;
}
// The Model property for the sphere
private static readonly DependencyProperty ModelProperty =
DependencyProperty.Register("Model",
typeof(Model3D),
typeof(Sphere),
new PropertyMetadata(ModelPropertyChanged));
private static void ModelPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Sphere s = (Sphere)d;
s.Visual3DModel = s.Model;
}
private Model3D Model
{
get
{
return (Model3D)GetValue(ModelProperty);
}
set
{
SetValue(ModelProperty, value);
}
}
// The number of divisions to make in the theta direction on the sphere
public static readonly DependencyProperty ThetaDivProperty =
DependencyProperty.Register("ThetaDiv",
typeof(int),
typeof(Sphere),
new PropertyMetadata(15, ThetaDivPropertyChanged));
private static void ThetaDivPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Sphere s = (Sphere)d;
s.InvalidateModel();
}
public int ThetaDiv
{
get
{
return (int)GetValue(ThetaDivProperty);
}
set
{
SetValue(ThetaDivProperty, value);
}
}
// The number of divisions to make in the phi direction on the sphere
public static readonly DependencyProperty PhiDivProperty =
DependencyProperty.Register("PhiDiv",
typeof(int),
typeof(Sphere),
new PropertyMetadata(15, PhiDivPropertyChanged));
private static void PhiDivPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Sphere s = (Sphere)d;
s.InvalidateModel();
}
public int PhiDiv
{
get
{
return (int)GetValue(PhiDivProperty);
}
set
{
SetValue(PhiDivProperty, value);
}
}
// The radius of the sphere
public static readonly DependencyProperty RadiusProperty =
DependencyProperty.Register("Radius",
typeof(double),
typeof(Sphere),
new PropertyMetadata(1.0, RadiusPropertyChanged));
private static void RadiusPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Sphere s = (Sphere)d;
s.InvalidateModel();
}
public double Radius
{
get
{
return (double)GetValue(RadiusProperty);
}
set
{
SetValue(RadiusProperty, value);
}
}
// Private helper methods
private static Point3D GetPosition(double theta, double phi, double radius)
{
double x = radius * Math.Sin(theta) * Math.Sin(phi);
double y = radius * Math.Cos(phi);
double z = radius * Math.Cos(theta) * Math.Sin(phi);
return new Point3D(x, y, z);
}
private static Vector3D GetNormal(double theta, double phi)
{
return (Vector3D)GetPosition(theta, phi, 1.0);
}
private static double DegToRad(double degrees)
{
return (degrees / 180.0) * Math.PI;
}
private static System.Windows.Point GetTextureCoordinate(double theta, double phi)
{
System.Windows.Point p = new System.Windows.Point(theta / (2 * Math.PI),
phi / (Math.PI));
return p;
}
// Tesselates the sphere and returns a MeshGeometry3D representing the
// tessellation based on the given parameters
internal static MeshGeometry3D Tessellate(int tDiv, int pDiv, double radius)
{
double dt = DegToRad(360.0) / tDiv;
double dp = DegToRad(180.0) / pDiv;
MeshGeometry3D mesh = new MeshGeometry3D();
for (int pi = 0; pi <= pDiv; pi++)
{
double phi = pi * dp;
for (int ti = 0; ti <= tDiv; ti++)
{
// we want to start the mesh on the x axis
double theta = ti * dt;
mesh.Positions.Add(GetPosition(theta, phi, radius));
mesh.Normals.Add(GetNormal(theta, phi));
mesh.TextureCoordinates.Add(GetTextureCoordinate(theta, phi));
}
}
for (int pi = 0; pi < pDiv; pi++)
{
for (int ti = 0; ti < tDiv; ti++)
{
int x0 = ti;
int x1 = (ti + 1);
int y0 = pi * (tDiv + 1);
int y1 = (pi + 1) * (tDiv + 1);
mesh.TriangleIndices.Add(x0 + y0);
mesh.TriangleIndices.Add(x0 + y1);
mesh.TriangleIndices.Add(x1 + y0);
mesh.TriangleIndices.Add(x1 + y0);
mesh.TriangleIndices.Add(x0 + y1);
mesh.TriangleIndices.Add(x1 + y1);
}
}
mesh.Freeze();
return mesh;
}
}
Public Class Sphere
Inherits UIElement3D
' OnUpdateModel is called in response to InvalidateModel and provides
' a place to set the Visual3DModel property.
'
' Setting Visual3DModel does not provide parenting information, which
' is needed for data binding, styling, and other features. Similarly, creating render data
' in 2-D does not provide the connections either.
'
' To get around this, we create a Model dependency property which
' sets this value. The Model DP then causes the correct connections to occur
' and the above features to work correctly.
'
' In this update model we retessellate the sphere based on the current
' dependency property values, and then set it as the model. The brush
' color is blue by default, but the code can easily be updated to let
' this be set by the user.
Protected Overrides Sub OnUpdateModel()
Dim model As New GeometryModel3D()
model.Geometry = Tessellate(ThetaDiv, PhiDiv, Radius)
model.Material = New DiffuseMaterial(System.Windows.Media.Brushes.Blue)
Me.Model = model
End Sub
' The Model property for the sphere
Private Shared ReadOnly ModelProperty As DependencyProperty = DependencyProperty.Register("Model", GetType(Model3D), GetType(Sphere), New PropertyMetadata(AddressOf ModelPropertyChanged))
Private Shared Sub ModelPropertyChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
Dim s As Sphere = CType(d, Sphere)
s.Visual3DModel = s.Model
End Sub
Private Property Model() As Model3D
Get
Return CType(GetValue(ModelProperty), Model3D)
End Get
Set(ByVal value As Model3D)
SetValue(ModelProperty, value)
End Set
End Property
' The number of divisions to make in the theta direction on the sphere
Public Shared ReadOnly ThetaDivProperty As DependencyProperty = DependencyProperty.Register("ThetaDiv", GetType(Integer), GetType(Sphere), New PropertyMetadata(15, AddressOf ThetaDivPropertyChanged))
Private Shared Sub ThetaDivPropertyChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
Dim s As Sphere = CType(d, Sphere)
s.InvalidateModel()
End Sub
Public Property ThetaDiv() As Integer
Get
Return CInt(GetValue(ThetaDivProperty))
End Get
Set(ByVal value As Integer)
SetValue(ThetaDivProperty, value)
End Set
End Property
' The number of divisions to make in the phi direction on the sphere
Public Shared ReadOnly PhiDivProperty As DependencyProperty = DependencyProperty.Register("PhiDiv", GetType(Integer), GetType(Sphere), New PropertyMetadata(15, AddressOf PhiDivPropertyChanged))
Private Shared Sub PhiDivPropertyChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
Dim s As Sphere = CType(d, Sphere)
s.InvalidateModel()
End Sub
Public Property PhiDiv() As Integer
Get
Return CInt(GetValue(PhiDivProperty))
End Get
Set(ByVal value As Integer)
SetValue(PhiDivProperty, value)
End Set
End Property
' The radius of the sphere
Public Shared ReadOnly RadiusProperty As DependencyProperty = DependencyProperty.Register("Radius", GetType(Double), GetType(Sphere), New PropertyMetadata(1.0, AddressOf RadiusPropertyChanged))
Private Shared Sub RadiusPropertyChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
Dim s As Sphere = CType(d, Sphere)
s.InvalidateModel()
End Sub
Public Property Radius() As Double
Get
Return CDbl(GetValue(RadiusProperty))
End Get
Set(ByVal value As Double)
SetValue(RadiusProperty, value)
End Set
End Property
' Private helper methods
Private Shared Function GetPosition(ByVal theta As Double, ByVal phi As Double, ByVal radius As Double) As Point3D
Dim x As Double = radius * Math.Sin(theta) * Math.Sin(phi)
Dim y As Double = radius * Math.Cos(phi)
Dim z As Double = radius * Math.Cos(theta) * Math.Sin(phi)
Return New Point3D(x, y, z)
End Function
Private Shared Function GetNormal(ByVal theta As Double, ByVal phi As Double) As Vector3D
Return CType(GetPosition(theta, phi, 1.0), Vector3D)
End Function
Private Shared Function DegToRad(ByVal degrees As Double) As Double
Return (degrees / 180.0) * Math.PI
End Function
Private Shared Function GetTextureCoordinate(ByVal theta As Double, ByVal phi As Double) As System.Windows.Point
Dim p As New System.Windows.Point(theta / (2 * Math.PI), phi / (Math.PI))
Return p
End Function
' Tesselates the sphere and returns a MeshGeometry3D representing the
' tessellation based on the given parameters
Friend Shared Function Tessellate(ByVal tDiv As Integer, ByVal pDiv As Integer, ByVal radius As Double) As MeshGeometry3D
Dim dt As Double = DegToRad(360.0) / tDiv
Dim dp As Double = DegToRad(180.0) / pDiv
Dim mesh As New MeshGeometry3D()
For pi As Integer = 0 To pDiv
Dim phi As Double = pi * dp
For ti As Integer = 0 To tDiv
' we want to start the mesh on the x axis
Dim theta As Double = ti * dt
mesh.Positions.Add(GetPosition(theta, phi, radius))
mesh.Normals.Add(GetNormal(theta, phi))
mesh.TextureCoordinates.Add(GetTextureCoordinate(theta, phi))
Next ti
Next pi
For pi As Integer = 0 To pDiv - 1
For ti As Integer = 0 To tDiv - 1
Dim x0 As Integer = ti
Dim x1 As Integer = (ti + 1)
Dim y0 As Integer = pi * (tDiv + 1)
Dim y1 As Integer = (pi + 1) * (tDiv + 1)
mesh.TriangleIndices.Add(x0 + y0)
mesh.TriangleIndices.Add(x0 + y1)
mesh.TriangleIndices.Add(x1 + y0)
mesh.TriangleIndices.Add(x1 + y0)
mesh.TriangleIndices.Add(x0 + y1)
mesh.TriangleIndices.Add(x1 + y1)
Next ti
Next pi
mesh.Freeze()
Return mesh
End Function
End Class
注解
UIElement3D 是一个抽象基类,可以从中派生表示特定 3D 元素的类。
一般情况下,3D 元素的大部分输入、聚焦和事件行为在 类中 UIElement3D 定义。 这包括键盘、鼠标和触笔输入的事件,以及相关的状态属性。 其中许多事件是路由事件,许多与输入相关的事件都具有浮升路由版本以及事件的隧道版本。 这些配对事件通常是控制作者最感兴趣的事件。
UIElement3D 还包括与 WPF 事件模型相关的 API,包括可引发源自元素实例的指定路由事件的方法。
具有 UIElement3D 类专门定义的 UIElement3D 以下功能:
- 可以响应用户输入 (包括控制通过处理事件路由或命令) 路由发送输入的位置。
- 可以引发通过逻辑元素树传递路由的路由事件。
重要
Visibility 状态会影响该元素的所有输入处理。 不可见的元素不参与命中测试,也不会接收输入事件,即使鼠标位于元素可见的边界上也是如此。
UIElement与 类不同, UIElement3D 类不包含布局。 因此, UIElement3D 类不包括 Measure 或 Arrange 方法。
派生自 UIElement3D 的类,它通过重写来维护其自己的 对象集合 Visual3D , GetVisual3DChild 并且 Visual3DChildrenCount 仍必须将新 Visual3D 对象 AddVisual3DChild传递给 。
UIElement3D在 .NET Framework 版本 3.5 中引入。 有关详细信息,请参见版本和依赖关系。
构造函数
UIElement3D() |
初始化 UIElement3D 类的新实例。 |
字段
属性
AllowDrop |
获取或设置一个值,该值指示此元素能否用作拖放操作的目标。 |
AreAnyTouchesCaptured |
获取一个值,该值指示在此元素上是否至少捕获了一次触摸。 |
AreAnyTouchesCapturedWithin |
获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少捕获了一次触摸。 |
AreAnyTouchesDirectlyOver |
获取一个值,该值指示在此元素上是否至少按下了一次触摸设备。 |
AreAnyTouchesOver |
获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少按下了一次触摸设备。 |
CommandBindings |
获取与此元素关联的 CommandBinding 对象的集合。 |
DependencyObjectType |
获取 DependencyObjectType 包装此实例的 CLR 类型的 。 (继承自 DependencyObject) |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
Focusable |
获取或设置一个值,该值指示元素能否得到焦点。 |
HasAnimatedProperties |
获取一个值,该值指示此 Visual3D 是否具有任何进行动画处理的属性。 (继承自 Visual3D) |
InputBindings |
获取与此元素关联的输入绑定的集合。 |
IsEnabled |
获取或设置一个值,该值指示是否在用户界面 (UI) 中启用此元素。 |
IsEnabledCore |
获取一个值,该值成为派生类中 IsEnabled 的返回值。 |
IsFocused |
获取一个值,该值确定此元素是否具有逻辑焦点。 |
IsHitTestVisible |
获取或设置一个值,该值声明是否可以返回此元素作为其呈现内容的某些部分的点击测试结果。 |
IsInputMethodEnabled |
获取一个值,该值指示是否启用输入法系统(例如输入法编辑器 (输入法) )来处理此元素的输入。 |
IsKeyboardFocused |
获取一个值,该值表示该元素是否具有键盘焦点。 |
IsKeyboardFocusWithin |
获取一个值,该值指示键盘焦点是否位于元素或其可视化树子元素内的任意位置。 |
IsMouseCaptured |
获取一个值,该值指示此元素是否捕获了鼠标。 |
IsMouseCaptureWithin |
获取一个值,该值确定鼠标捕获是由此元素还是其可视化树中的子元素持有。 |
IsMouseDirectlyOver |
获取一个值,该值指示在考虑元素组合的情况下,鼠标指针的位置是否与命中测试结果相对应。 |
IsMouseOver |
获取一个值,该值指示鼠标指针是否位于此元素(包括可视化树中的子元素)的上方。 |
IsSealed |
获取一个值,该值指示此实例当前是否为密封的(只读)。 (继承自 DependencyObject) |
IsStylusCaptured |
获取一个值,该值表示此元素是否捕获了触笔。 |
IsStylusCaptureWithin |
获取一个值,该值确定触笔捕获是由此元素还是由元素边界内的元素及其可视化树持有。 |
IsStylusDirectlyOver |
获取一个值,该值指示在考虑元素组合的情况下,触笔的位置是否与命中测试结果相对应。 |
IsStylusOver |
获取一个值,该值指示触笔指针是否位于此元素(包括可视化子元素)的上方。 |
IsVisible |
获取一个值,该值指示此元素在用户界面 (UI) 中是否可见。 |
TouchesCaptured |
获取在此元素上捕获的所有触摸设备。 |
TouchesCapturedWithin |
获取在此元素或其可视化树中的任何子元素上捕获的所有触摸设备。 |
TouchesDirectlyOver |
获取此元素上的所有触摸设备。 |
TouchesOver |
获取在此元素或其可视化树中的任何子元素上的所有触摸设备。 |
Transform |
获取或设置应用于三维对象的变换。 (继承自 Visual3D) |
Visibility |
获取或设置用户界面 (UI) 此元素的可见性。 |
Visual3DChildrenCount |
获取 Visual3D 对象的子元素数量。 (继承自 Visual3D) |
Visual3DModel |
获取或设置要呈现的 Model3D 对象。 (继承自 Visual3D) |
方法
事件
DragEnter |
在输入系统报告出现以此元素为拖动目标的基础拖动事件时发生。 |
DragLeave |
在输入系统报告出现以此元素为拖动起点的基础拖动事件时发生。 |
DragOver |
在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。 |
Drop |
在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。 |
FocusableChanged |
当 Focusable 属性的值更改时发生。 |
GiveFeedback |
在输入系统报告出现涉及此元素的基础拖放操作时发生。 |
GotFocus |
在此元素获得逻辑焦点时发生。 |
GotKeyboardFocus |
在此元素聚焦于键盘时发生。 |
GotMouseCapture |
在此元素捕获鼠标时发生。 |
GotStylusCapture |
在此元素捕获触笔时发生。 |
GotTouchCapture |
在此元素上捕获触摸屏输入时发生。 |
IsEnabledChanged |
在此元素的 IsEnabled 属性值更改时发生。 |
IsHitTestVisibleChanged |
在此元素的 IsHitTestVisible 依赖项属性值更改时发生。 |
IsKeyboardFocusedChanged |
在此元素的 IsKeyboardFocused 属性值更改时发生。 |
IsKeyboardFocusWithinChanged |
在此元素的 IsKeyboardFocusWithin 属性值更改时发生。 |
IsMouseCapturedChanged |
在此元素的 IsMouseCaptured 属性值更改时发生。 |
IsMouseCaptureWithinChanged |
在此元素的 IsMouseCaptureWithin 属性值更改时发生。 |
IsMouseDirectlyOverChanged |
在此元素的 IsMouseDirectlyOver 属性值更改时发生。 |
IsStylusCapturedChanged |
在此元素的 IsStylusCaptured 属性值更改时发生。 |
IsStylusCaptureWithinChanged |
在此元素的 IsStylusCaptureWithin 属性值更改时发生。 |
IsStylusDirectlyOverChanged |
在此元素的 IsStylusDirectlyOver 属性值更改时发生。 |
IsVisibleChanged |
在此元素的 IsVisible 属性值更改时发生。 |
KeyDown |
在此元素聚焦于键盘并且按下某个键时发生。 |
KeyUp |
在此元素聚焦于键盘并且松开某个键时发生。 |
LostFocus |
在此元素丢失逻辑焦点时发生。 |
LostKeyboardFocus |
在此元素不再聚焦于键盘时发生。 |
LostMouseCapture |
在此元素丢失鼠标捕获时发生。 |
LostStylusCapture |
在此元素丢失触笔捕获时发生。 |
LostTouchCapture |
在此元素失去触摸屏输入捕获时发生。 |
MouseDown |
在指针位于此元素上并且按下任意鼠标按钮时发生。 |
MouseEnter |
在鼠标指针进入此元素的边界时发生。 |
MouseLeave |
在鼠标指针离开此元素的边界时发生。 |
MouseLeftButtonDown |
在鼠标指针位于此元素上并且按下鼠标左键时发生。 |
MouseLeftButtonUp |
在鼠标指针位于此元素上并且松开鼠标左键时发生。 |
MouseMove |
在鼠标指针位于此元素上并且移动鼠标指针时发生。 |
MouseRightButtonDown |
在鼠标指针位于此元素上并且按下鼠标右键时发生。 |
MouseRightButtonUp |
在鼠标指针位于此元素上并且松开鼠标右键时发生。 |
MouseUp |
在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。 |
MouseWheel |
在鼠标指针位于此元素上并且用户滚动鼠标滚轮时发生。 |
PreviewDragEnter |
在输入系统报告出现以此元素为拖动目标的基础拖动事件时发生。 |
PreviewDragLeave |
在输入系统报告出现以此元素为拖动起点的基础拖动事件时发生。 |
PreviewDragOver |
在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。 |
PreviewDrop |
在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。 |
PreviewGiveFeedback |
在开始拖放操作时发生。 |
PreviewGotKeyboardFocus |
在此元素聚焦于键盘时发生。 |
PreviewKeyDown |
在此元素聚焦于键盘并且按下某个键时发生。 |
PreviewKeyUp |
在此元素聚焦于键盘并且松开某个键时发生。 |
PreviewLostKeyboardFocus |
在此元素不再聚焦于键盘时发生。 |
PreviewMouseDown |
在指针位于此元素上并且按下任意鼠标按钮时发生。 |
PreviewMouseLeftButtonDown |
在鼠标指针位于此元素上并且按下鼠标左键时发生。 |
PreviewMouseLeftButtonUp |
在鼠标指针位于此元素上并且松开鼠标左键时发生。 |
PreviewMouseMove |
在鼠标指针位于此元素上并且移动鼠标指针时发生。 |
PreviewMouseRightButtonDown |
在鼠标指针位于此元素上并且按下鼠标右键时发生。 |
PreviewMouseRightButtonUp |
在鼠标指针位于此元素上并且松开鼠标右键时发生。 |
PreviewMouseUp |
在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。 |
PreviewMouseWheel |
在鼠标指针位于此元素上并且用户滚动鼠标滚轮时发生。 |
PreviewQueryContinueDrag |
在拖放操作期间键盘或鼠标按钮的状态改变时发生。 |
PreviewStylusButtonDown |
在指针位于此元素上并且按下触笔按钮时发生。 |
PreviewStylusButtonUp |
在指针位于此元素上并且松开触笔按钮时发生。 |
PreviewStylusDown |
当触笔位于元素上且触及数字化器时发生。 |
PreviewStylusInAirMove |
在触笔掠过元素但并未实际接触数字化器时发生。 |
PreviewStylusInRange |
在触笔位于此元素上并且触笔与数字化器之间的距离近到足以检测到触笔时发生。 |
PreviewStylusMove |
在触笔位于元素上并且移动触笔时发生。 数字化器在检测触笔时,触笔必须处于移动状态才会引发此事件,否则将改为引发 PreviewStylusInAirMove。 |
PreviewStylusOutOfRange |
在触笔与数字化仪之间的距离太远以致无法检测到触笔时发生。 |
PreviewStylusSystemGesture |
在用户采用某一种触笔笔势时发生。 |
PreviewStylusUp |
当触笔位于此元素上并且用户将触笔抬离数字化器时发生。 |
PreviewTextInput |
在此元素以设备无关模式获取文本时发生。 |
PreviewTouchDown |
当悬停在此元素上方的手指触摸屏幕时发生。 |
PreviewTouchMove |
当悬停在此元素上方的手指在屏幕上移动时发生。 |
PreviewTouchUp |
当悬停在此元素上方的手指从屏幕上移开时发生。 |
QueryContinueDrag |
在拖放操作期间键盘或鼠标按钮的状态改变时发生。 |
QueryCursor |
当请求显示光标时发生。 每次鼠标指针移至新位置时都会在一个元素上引发此事件,这意味着光标对象可能需要根据其新位置进行更改。 |
StylusButtonDown |
在指针位于此元素上并且按下触笔按钮时发生。 |
StylusButtonUp |
在指针位于此元素上并且松开触笔按钮时发生。 |
StylusDown |
在触笔位于此元素上且同时触及数字化器时发生。 |
StylusEnter |
在触笔进入此元素的边界时发生。 |
StylusInAirMove |
在触笔掠过元素但并未实际接触数字化器时发生。 |
StylusInRange |
在触笔位于此元素上并且触笔与数字化器之间的距离近到足以检测到触笔时发生。 |
StylusLeave |
在触笔离开元素的边界时发生。 |
StylusMove |
在触笔移到此元素上时发生。 触笔必须在位于数字化器上时移动,才会引发此事件。 否则将改为引发 StylusInAirMove。 |
StylusOutOfRange |
在触笔位于此元素上并且触笔与数字化器之间的距离太远以致无法检测到触笔时发生。 |
StylusSystemGesture |
在用户采用某一种触笔笔势时发生。 |
StylusUp |
当触笔位于此元素上并且用户将触笔抬离数字化器时发生。 |
TextInput |
在此元素以设备无关模式获取文本时发生。 |
TouchDown |
当悬停在此元素上方的手指触摸屏幕时发生。 |
TouchEnter |
在触摸屏输入从此元素边界外部移动到其内部时发生。 |
TouchLeave |
在触摸屏输入从此元素边界内部移动到其外部时发生。 |
TouchMove |
当悬停在此元素上方的手指在屏幕上移动时发生。 |
TouchUp |
当悬停在此元素上方的手指从屏幕上移开时发生。 |