2015-02-08 5 views
0

У меня есть элемент управления внутри окна. Я установил направление потока элемента управления с помощью справа налево. Я попытался вычислить местоположение управления из окна.найти местоположение управления из окна при приложении направления потока

Point locationfromWindow = control.TranslatePoint(new Point(0, 0), control); 

Используя приведенный выше код, я нашел точку, но она отличается от заданного направления потока слева направо.

Направление потока управления влияет на местоположение от значения окна? как решить эту проблему

ответ

0

У меня была та же проблема. Я решил это путем «реверсирования» рассчитанного значения, когда FlowDirection является RTL. Это означает фиксацию X-координаты locationfromWindow. Что-то вроде этого:

double correctX = control.X - locationfromWindow.X; 

Если кто-то имеет лучшее решение, пожалуйста, сообщите.

0

выше код вычислить местоположение с верхнего правого угла. если нам нужно вычислить из верхнего левого угла, то вроде этого

Point pt = TranslatePoint(new Point(0, 0), control); 
pt.Offset(-control.ActualWidth, 0); 

вычислить точку в верхнем левом углу. и отлично работает для меня