Frage

Ich versuche, einige Zeichenanwendung zu machen, und ich bekomme seltsame Ergebnisse in meinem „Auswahlmodus“. Wenn ich ein Rechteck zeichnen und „wählen sie“ liefert Render richtige Größe für sie, aber wenn Zeile ausgewählt ist Render gibt Größe die Breite als Line.X2 hat festgelegt, und Höhe eingestellt als Line.Y2. Zum Beispiel: Zeile an X1 beginnt = 50, Y1 = 50, bei X2 endet = 130, Y 2 = 90, gibt Render Größe mit Width = 130 und Height = 90. Meine Auswahl enthält Elemente vom Typ UIElement so weiß ich nicht ( und sollte wirklich nicht kümmern), welche Form wird gewählt, um meine Auswahlmodus als generische zu machen, wie ich kann, und ich möchte Begrenzungsbox zeichnen, während Benutzer bewegt Form ausgewählt.

Versucht Google das Problem aber nichts gefunden relevant vielleicht könnten Sie mir dabei helfen. Ist es, weil Rechteck Position durch Leinwand gesetzt hat, während Linie seine Punkte explizit festgelegt hat?

War es hilfreich?

Lösung

Der Grund, warum Sie 130x90 sind immer ist wegen der Grund, warum Sie zitiert. Ein Rechteck in WPF ist positions weniger, es ist nur eine Höhe / Breite so die beiden Größenwerte gleich sind.

jedoch als eine Linie durch die Punkte definiert unbedingt ein von dem Ursprung versetzt erforderlich ist, und somit der Versatz in dem Begrenzungsrahmen enthalten.

Beachten Sie auch, dass Sie die Canvas.Top/Left Eigenschaften mit Ihrem Line-Objekt weiterverwenden können sie weiter zu kompensieren, z.

  <Canvas>
    <Line X1="50" X2="130" Y1="50" Y2="90" StrokeThickness="1" Stroke="Blue" Canvas.Top="50" Canvas.Left="30"></Line>
  </Canvas>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top