StylusPoint 結構
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示從數位板和手寫筆收集的單一資料點 (Data Point)。
public value class StylusPoint : IEquatable<System::Windows::Input::StylusPoint>
public struct StylusPoint : IEquatable<System.Windows.Input.StylusPoint>
type StylusPoint = struct
Public Structure StylusPoint
Implements IEquatable(Of StylusPoint)
- 繼承
- 實作
下列範例會取得 中StylusPointCollection每個 StylusPoint 的屬性名稱和值。 這個範例假設有名為 TextBlockpacketOutput
的 。
private void WriteStylusPointValues(StylusPointCollection points)
{
StylusPointDescription pointsDescription = points.Description;
ReadOnlyCollection<StylusPointPropertyInfo> properties =
pointsDescription.GetStylusPointProperties();
// Write the name and value of each property in
// every stylus point.
StringWriter packetWriter = new StringWriter();
packetWriter.WriteLine("{0} stylus points", points.Count.ToString());
foreach (StylusPoint stylusPoint in points)
{
packetWriter.WriteLine("Stylus Point info");
packetWriter.WriteLine("X: {0}", stylusPoint.X.ToString());
packetWriter.WriteLine("Y: {0}", stylusPoint.Y.ToString());
packetWriter.WriteLine("Pressure: {0}", stylusPoint.PressureFactor.ToString());
// Get the property name and value for each StylusPoint.
// Note that this loop reports the X, Y, and pressure values differantly than
// getting their values above.
for (int i = 0; i < pointsDescription.PropertyCount; ++i)
{
StylusPointProperty currentProperty = properties[i];
// GetStylusPointPropertyName is defined below and returns the
// name of the property.
packetWriter.Write("{0}: ", GetStylusPointPropertyName(currentProperty));
packetWriter.WriteLine(stylusPoint.GetPropertyValue(currentProperty).ToString());
}
packetWriter.WriteLine();
}
packetOutput.Text = packetWriter.ToString();
}
Private Sub WriteStylusPointValues(ByVal points As StylusPointCollection)
Dim pointsDescription As StylusPointDescription = points.Description
Dim properties As ReadOnlyCollection(Of StylusPointPropertyInfo) = _
pointsDescription.GetStylusPointProperties()
' Write the name and value of each property in
' every stylus point.
Dim packetWriter As New StringWriter()
packetWriter.WriteLine("{0} stylus points", points.Count.ToString())
For Each stylusPoint As StylusPoint In points
packetWriter.WriteLine("Stylus Point info")
packetWriter.WriteLine("X: {0}", stylusPoint.X.ToString())
packetWriter.WriteLine("Y: {0}", stylusPoint.Y.ToString())
packetWriter.WriteLine("Pressure: {0}", stylusPoint.PressureFactor.ToString())
' Get the property name and value for each StylusPoint.
' Note that this loop reports the X, Y, and pressure values differantly than
' getting their values above.
For i As Integer = 0 To pointsDescription.PropertyCount - 1
Dim currentProperty As StylusPointProperty = properties(i)
' GetStylusPointPropertyName is defined below and returns the
' name of the property.
packetWriter.Write("{0}: ", GetStylusPointPropertyName(currentProperty))
packetWriter.WriteLine(stylusPoint.GetPropertyValue(currentProperty).ToString())
Next i
packetWriter.WriteLine()
Next stylusPoint
packetOutput.Text = packetWriter.ToString()
End Sub
// Use reflection to get the name of currentProperty.
private string GetStylusPointPropertyName(StylusPointProperty currentProperty)
{
Guid guid = currentProperty.Id;
// Iterate through the StylusPointProperties to find the StylusPointProperty
// that matches currentProperty, then return the name.
foreach (FieldInfo theFieldInfo
in typeof(StylusPointProperties).GetFields())
{
StylusPointProperty property = (StylusPointProperty) theFieldInfo.GetValue(currentProperty);
if (property.Id == guid)
{
return theFieldInfo.Name;
}
}
return "Not found";
}
' Use reflection to get the name of currentProperty.
Private Function GetStylusPointPropertyName(ByVal currentProperty As StylusPointProperty) As String
Dim guid As Guid = currentProperty.Id
' Iterate through the StylusPointProperties to find the StylusPointProperty
' that matches currentProperty, then return the name.
Dim theFieldInfo As FieldInfo
For Each theFieldInfo In GetType(StylusPointProperties).GetFields()
Dim pointProperty As StylusPointProperty = _
CType(theFieldInfo.GetValue(currentProperty), StylusPointProperty)
If pointProperty.Id = guid Then
Return theFieldInfo.Name
End If
Next theFieldInfo
Return "Not found"
End Function 'GetStylusPointPropertyName
當使用者 StylusPoint 使用數位板輸入筆跡時,會收集數據。 因為數位板所報告的資訊會根據製造商而有所不同,所以 內 StylusPoint 的屬性可能會有所不同。 若要判斷屬性是否在 中 StylusPoint,請呼叫 HasProperty 方法。 屬性 Description 包含 , StylusPointDescription 指定中的 StylusPoint屬性。 所有 StylusPoint 物件都包含屬性,指定 (x、y) 座標以及壓力。
Stylus |
使用指定的 (x, y) 座標,初始化 StylusPoint 類別的新執行個體。 |
Stylus |
使用指定的 (x, y) 座標和壓力,初始化 StylusPoint 類別的新執行個體。 |
Stylus |
使用指定的 (x, y) 座標、 |
Description |
取得或設定 StylusPointDescription,它指定儲存在 StylusPoint 中的屬性。 |
Pressure |
取得或設定一個介於 0 和 1 之間的值,這個值反映在建立 StylusPoint 時手寫筆套用到數位板介面的壓力總量。 |
X |
取得或設定 StylusPoint 的 X 座標值。 |
Y |
取得或設定 StylusPoint 的 Y 座標。 |
Equals(Object) |
傳回值,這個值表示指定的物件是否等於 StylusPoint。 |
Equals(Stylus |
傳回布林值,這個值表示指定的 StylusPoint 是否等於目前的 StylusPoint。 |
Equals(Stylus |
傳回布林值,這個值表示兩個指定的 StylusPoint 物件是否相等。 |
Get |
傳回這個執行個體的雜湊碼。 |
Get |
傳回指定之屬性的值。 |
Has |
傳回目前的 StylusPoint 是否內含指定的屬性。 |
Set |
將指定的屬性設為指定的值。 |
To |
將 StylusPoint 轉換成 Point。 |
Equality(Stylus |
比較兩個指定的 StylusPoint 物件並判斷它們是否相等。 |
Explicit(Stylus |
將指定的 StylusPoint 轉型為 Point。 |
Inequality(Stylus |
傳回布林值,這個值表示指定的 StylusPoint 物件是否不相等。 |
產品 | 版本 |
---|---|
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0, 3.1, 5, 6, 7, 8, 9 |