UIElement3D 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
UIElement3D 是以 Windows Presentation Foundation (WPF) 項目和基本呈現方式特性為建置基礎之 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 state 會影響該元素的所有輸入處理。 不可見的專案不會參與點擊測試,而且不會接收輸入事件,即使滑鼠位於元素的界限上,如果可見則為 。
UIElement不同於 類別,類別UIElement3D不包含版面配置。 因此,類別 UIElement3D 不包含 Measure 或 Arrange 方法。
衍生自 UIElement3D 的類別,並藉由覆寫GetVisual3DChild來維護其本身的物件Visual3D集合,而且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 |
取得或設定套用至 3D 物件的轉換。 (繼承來源 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 |
手指在這個項目上方且離開螢幕時發生。 |