2016-11-21 7 views
0

Я хочу найти два элемента управления на экране, чтобы динамически создавать «Линия» между ними (линия уже находится в коде XAML, и изменение ее хода приведет к ее появлению). Я попытался поймать событие Tapped этих элементов управления и использовать GetPosition(), но линия не в нужном месте (угол правильный, но линия слишком далеко). Некоторые сообщения предложили использовать PointToScreen. Но моя Visual Studio не знает System.Windows.Forms. Зачем ?PointToScreen неизвестен

+1

'PointToScreen' не применим в вашем случае. Это метод из среды Winforms, но ваша аппликация построена с помощью WPF. –

+0

Вы можете использовать [Visual.PointToScreen] (https://msdn.microsoft.com/en-us/library/system.windows.media.visual.pointtsccreen (v = vs.110) .aspx) – Pikoh

+0

Хорошо! Это не правильная структура. Теперь я понимаю, почему это происходит все время. Благодаря ! – Myosotis

ответ

1

Что-то в этом роде?

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

Вот и все, за исключением того, что я не могу назвать PointToScreen, поскольку он не существует. Возможно, отсутствующая Ассамблея или что-то в этом роде (я ничего не понимаю в этом материале «Ссылки») – Myosotis

Смежные вопросы