Если вращение предназначено только для представления (т. Е. Вас не волнует, что исходные геометрические данные все еще являются стрелкой, указывающей в исходном направлении), тогда вы можете применить к нему преобразование .
После того как вы нарисовали свой контекст, просто примените преобразование к исходному объекту StreamGeometry (код на C #, но он также применим и к VB.NET):
var geo = new StreamGeometry();
using (var ctx = geo.Open())
{
ctx.BeginFigure(new Point(0, 20), false, false);
ctx.LineTo(new Point(100, 20), true, true);
ctx.LineTo(new Point(80, 40), true, true);
ctx.LineTo(new Point(80, 0), true, true);
ctx.LineTo(new Point(100, 20), true, true);
}
geo.Transform = new RotateTransform(45);
var drawing = new GeometryDrawing(Brushes.Transparent, new Pen(Brushes.Black, 1), geo);
image1.Source = new DrawingImage(drawing);
Приведенный выше код нарисует стрелку, указывающую вниз / вправо на Image
элемент управления с именем image1
.