|
|
|
|
@ -161,6 +161,32 @@ namespace ICSharpCode.AvalonEdit.Utils
@@ -161,6 +161,32 @@ namespace ICSharpCode.AvalonEdit.Utils
|
|
|
|
|
} |
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region DPI independence
|
|
|
|
|
public static Rect TransformToDevice(this Rect rect, Visual visual) |
|
|
|
|
{ |
|
|
|
|
Matrix matrix = PresentationSource.FromVisual(visual).CompositionTarget.TransformToDevice; |
|
|
|
|
return Rect.Transform(rect, matrix); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Rect TransformFromDevice(this Rect rect, Visual visual) |
|
|
|
|
{ |
|
|
|
|
Matrix matrix = PresentationSource.FromVisual(visual).CompositionTarget.TransformFromDevice; |
|
|
|
|
return Rect.Transform(rect, matrix); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Size TransformToDevice(this Size size, Visual visual) |
|
|
|
|
{ |
|
|
|
|
Matrix matrix = PresentationSource.FromVisual(visual).CompositionTarget.TransformToDevice; |
|
|
|
|
return new Size(size.Width * matrix.M11, size.Height * matrix.M22); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Size TransformFromDevice(this Size size, Visual visual) |
|
|
|
|
{ |
|
|
|
|
Matrix matrix = PresentationSource.FromVisual(visual).CompositionTarget.TransformFromDevice; |
|
|
|
|
return new Size(size.Width * matrix.M11, size.Height * matrix.M22); |
|
|
|
|
} |
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region System.Drawing <-> WPF conversions
|
|
|
|
|
public static System.Drawing.Point ToSystemDrawing(this Point p) |
|
|
|
|
{ |
|
|
|
|
|