StylusPointDescription.PropertyCount Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the number of properties in the StylusPointDescription.
public:
property int PropertyCount { int get(); };
public int PropertyCount { get; }
member this.PropertyCount : int
Public ReadOnly Property PropertyCount As Integer
Property Value
The number of properties in the StylusPointDescription.
Examples
The following example demonstrates how to get the properties of each StylusPoint in a StylusPointCollection. This example assumes there is a TextBlock called packetOutput
.
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
Applies to
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.