tout d'abord, la réponse est Oui. vous pouvez convertir les chemins en collection de traits, puis les ajouter à InkCanvas.
Pour la deuxième partie de votre question, la réponse devrait être quelque chose comme ceci:
Point mypoint;
Point tg;
var pointCollection = new List<Point>();
for (var i = 0; i < 500; i++)
{
SomePath.Data.GetFlattenedGeometryPath()
.GetPointAtFractionLength(i/500f, out mypoint, out tg);
pointCollection.Add(p);
}
Pour le point de stylet et collection de pointe du stylet:
StylusPointCollection StPoints = new StylusPointCollection();
ajouter des points de stylet lors de chemin de conversion à la collecte de points par:
StPoints.Add(new StylusPoint(p.X, P.Y));
Et après cette étape, appeler la méthode Stroke pour créer une collection de s Trökes de votre collection de stylet:
Stroke st = null;
st = new Stroke(StPoints);
Mise à jour
Oui! Il existe de meilleurs moyens d'ajouter des formes à inkCanvas.
Vous pouvez définir ce point de stylet forme directement et les ajouter à l'aide MouseDown, MouseMove .. par exemple pour dessiner un rectangle:
pts.Add(new StylusPoint(mouseLeftDownPoint.X, mouseLeftDownPoint.Y));
pts.Add(new StylusPoint(mouseLeftDownPoint.X, currentPoint.Y));
pts.Add(new StylusPoint(currentPoint.X, currentPoint.Y));
pts.Add(new StylusPoint(currentPoint.X, mouseLeftDownPoint.Y));
pts.Add(new StylusPoint(mouseLeftDownPoint.X, mouseLeftDownPoint.Y));
Ou Remplacer méthode DrawCore de classe Stroke et définissez un nouveau type de trait. Custom Rendering Ink (MSDN)
Merci :) Je vais essayer de nouvelles méthodes. Je pense que c'est une très bonne idée de dessiner directement sur Inkcanvas au lieu de convertir des chemins. –
Oui c'est. Comme toujours, cela économise de la mémoire et du traitement, et à côté de ce point de stylet ne supporte pas les points de brasier. – hemarn