WPFユーザーコントロールで、位置とサイズが異なる可能性のある円で画像コントロールをマスクしようとしています。ユーザーは、左にドラッグして円の半径を変更し、右にドラッグして楕円の中心点を変更します。必要なすべての値を正しくキャプチャしており、マスクの半径を適切に設定できます。問題は、楕円の中心にどのポイントを使用しても、画像コントロールの中心から描画されることです。何か案は?
以下は、マスクを設定するコードです。
private void SetMask(double _Radius)
{
EllipseGeometry MaskGeometry = new EllipseGeometry(CenterPos, _Radius, _Radius);
GeometryDrawing MaskDrawing = new GeometryDrawing(Brushes.Black, null, MaskGeometry);
DrawingBrush MaskBrush = new DrawingBrush(MaskDrawing);
MaskBrush.Stretch = Stretch.None;
Img.OpacityMask = MaskBrush; //Img is the Image control
}