InkCanvas.Strokes 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.
public:
property System::Windows::Ink::StrokeCollection ^ Strokes { System::Windows::Ink::StrokeCollection ^ get(); void set(System::Windows::Ink::StrokeCollection ^ value); };
public System.Windows.Ink.StrokeCollection Strokes { get; set; }
member this.Strokes : System.Windows.Ink.StrokeCollection with get, set
Public Property Strokes As StrokeCollection
Property Value
The collection of Stroke objects contained within the InkCanvas.
Examples
The following example demonstrates how to use two StrokeCollection objects for the same InkCanvas. In this example, player one and player two each use an individual "inking surface" even though they share the same InkCanvas. This example assumes the click event is connected to the event handler, switchPlayersButton_Click
.
StrokeCollection player1;
StrokeCollection player2;
void InitializePlayersCanvases()
{
player1 = inkCanvas1.Strokes;
player2 = new StrokeCollection();
}
// Use a different "inking surface" for each player.
void switchPlayersButton_Click(object sender, RoutedEventArgs e)
{
if (StrokeCollection.ReferenceEquals(inkCanvas1.Strokes, player1))
{
inkCanvas1.Strokes = player2;
}
else
{
inkCanvas1.Strokes = player1;
}
}
void inkCanvas1_StrokesReplaced(object sender, InkCanvasStrokesReplacedEventArgs e)
{
if (StrokeCollection.ReferenceEquals(e.NewStrokes, player1))
{
Title = "Player one's turn";
}
else
{
Title = "Player two's turn";
}
}
Private player1 As StrokeCollection
Private player2 As StrokeCollection
Sub InitializePlayersCanvases()
player1 = inkCanvas1.Strokes
player2 = New StrokeCollection()
End Sub
' Use a different "inking surface" for each player.
Private Sub switchPlayersButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If StrokeCollection.ReferenceEquals(inkCanvas1.Strokes, player1) Then
inkCanvas1.Strokes = player2
Else
inkCanvas1.Strokes = player1
End If
End Sub
Private Sub inkCanvas1_StrokesReplaced(ByVal sender As Object, _
ByVal e As InkCanvasStrokesReplacedEventArgs)
If StrokeCollection.ReferenceEquals(e.NewStrokes, player1) Then
Title = "Player one's turn"
Else
Title = "Player two's turn"
End If
End Sub
The following example demonstrates how to bind the Strokes property of an InkCanvas to another InkCanvas.
<InkCanvas Background="LightGray"
Canvas.Top="0" Canvas.Left="0"
Height="400" Width="200" Name="ic"/>
<!-- Bind the Strokes of the second InkCavas to the first InkCanvas
and mirror the strokes along the Y axis.-->
<InkCanvas Background="LightBlue"
Canvas.Top="0" Canvas.Left="200"
Height="400" Width="200"
Strokes="{Binding ElementName=ic, Path=Strokes}">
<InkCanvas.LayoutTransform>
<ScaleTransform ScaleX="-1" ScaleY="1" />
</InkCanvas.LayoutTransform>
</InkCanvas>
Remarks
Dependency Property Information
Identifier field | StrokesProperty |
Metadata properties set to true |
None |