private void ContentPanel_MouseMove(object sender, MouseEventArgs e) { Point center = e.GetPosition(ContentPanel); double length = MagnifierCircle.ActualWidth * _factor; // mit einem Plus bzw einem deutlich geringerem wert und einem nicht anzeigen eines Kreises // kann der Welleneffekt optisch realisiert werden = reine Umsetzung der Sinne double radius = length / 2; Rect viewboxRect = new Rect(center.X - radius, center.Y - radius, length, length); MagnifierBrush.Viewbox = viewboxRect; MagnifierCircle.SetValue(Canvas.LeftProperty, center.X - (MagnifierCircle.ActualWidth / 2)); MagnifierCircle.SetValue(Canvas.TopProperty, center.Y - (MagnifierCircle.ActualHeight / 2)); // Rechteckversion 1.01 CreativeRyu // MagnifierRectangle // MagnifierBrushRectangle //Point center = e.GetPosition(ContentPanel); //double lenght = MagnifierRectangle.ActualWidth * _factor; //double height = MagnifierRectangle.ActualHeight * _factor; //Rect viewboxRect = new Rect(center.X - lenght, center.Y - height, lenght, lenght); //MagnifierBrushRectangle.Viewbox = viewboxRect; }
public void SetPosition(Point destination) { Center = destination; double length = MagnifierCircle.ActualWidth * ZoomFactor; double radius = length / 2.0; MagnifierBrush.Viewbox = new Rect(Center.X - radius, Center.Y - radius, length, length); MagnifierCircle.SetValue(Canvas.LeftProperty, Center.X - MagnifierCircle.ActualWidth / 2); MagnifierCircle.SetValue(Canvas.TopProperty, Center.Y - MagnifierCircle.ActualHeight / 2); MagnifierInnerCircle.SetValue(Canvas.LeftProperty, Center.X - MagnifierInnerCircle.ActualWidth / 2); MagnifierInnerCircle.SetValue(Canvas.TopProperty, Center.Y - MagnifierInnerCircle.ActualHeight / 2); }