2016-11-21 2 views
0

Ich möchte zwei Steuerelemente auf dem Bildschirm finden, um dynamisch eine "Linie" zwischen ihnen zu erstellen (die Linie ist bereits im XAML-Code und ändert seinen Strich, wird es erscheinen). Ich habe versucht, das Tapped-Ereignis dieser Steuerelemente abzufangen und die GetPosition() des Ereignisses zu verwenden, aber die Zeile ist nicht an der richtigen Stelle (der Winkel ist korrekt, aber die Linie ist zu weit). Einige Beiträge vorgeschlagen, PointToScreen zu verwenden. Aber mein Visual Studio kennt System.Windows.Forms nicht. Warum ?PointToScreen ist unbekannt

+1

'PointToScreen' ist in Ihrem Fall nicht anwendbar. Es ist eine Methode aus dem Winforms-Framework, aber Ihre Anwendung wird mit WPF erstellt. –

+0

Sie können [Visual.PointToScreen] verwenden (https://msdn.microsoft.com/en-us/library/system.windows.media.visual.pointotoscreen (v = vs.110) .aspx) – Pikoh

+0

Ok! Es ist nicht der richtige Rahmen. Ich verstehe jetzt, warum das die ganze Zeit passiert. Vielen Dank ! – Myosotis

Antwort

1

So ähnlich?

public void MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
     { 
      var myControl = (YourControlType)sender;       
      var position = e.GetPosition(myControl); 
      var controlPosition= myControl.PointToScreen(position); 
     } 
+0

Das ist es, außer dass ich PointToScreen nicht aufrufen kann, da es nicht existiert. Vielleicht eine fehlende Assembly oder etwas ähnliches (ich verstehe nichts in diesem "References" Zeug) – Myosotis