public class MyCanvas : Control // or UIElement or Control or ContentControl { public MyCanvas() { Width = 5000; Height = 5000; this.Cursor = Cursors.Cross; } protected override void OnRender(DrawingContext dc) { FormattedText formattedText; double thick; Pen pen; base.OnRender(dc); // important Rect rect22 = new Rect(0, 0, Width, Height); dc.DrawRectangle(Brushes.White, pen2, rect22); int x = 100; int y = 100; formattedText = new FormattedText(text.Text, CultureInfo.GetCultureInfo("DE-de"), FlowDirection.LeftToRight, new Typeface("Verdana"), 24, Brushes.Red); dc.DrawText(formattedText, new Point(x, y)); int x = 100; int y = 110; formattedText = new FormattedText(text.Text, CultureInfo.GetCultureInfo("DE-de"), FlowDirection.LeftToRight, new Typeface("Verdana"), 24, Brushes.Red); // important angle with x and y angle=-90; RotateTransform RT = new RotateTransform(angle, x, y); dc.PushTransform(RT); dc.DrawText(formattedText, new Point(x, y)); dc.Pop(); x = 100; y = 200; formattedText = new FormattedText(text.Text, CultureInfo.GetCultureInfo("DE-de"), FlowDirection.LeftToRight, new Typeface("Verdana"), 24, Brushes.Red); dc.DrawText(formattedText, new Point(x, y)); } }