2011-02-02 3 views
1

Мне нужно найти местоположение элемента WPF в окне приложения, чтобы затем рисовать прямоугольник вокруг определенного элемента при захвате экрана/изображения окно, содержащее этот элемент.Как найти местоположение элемента wpf в окне

Это для VS Coded UI Framework. Я разрабатываю, у которого есть захват окна или захват элемента для изображения при возникновении ошибки. Я хочу объединить эти два и иметь захват окна, который показывает красный прямоугольник вокруг элемента по ошибке.

У всех форумов есть ответы об этом, но они относятся к TranslatePoint. Я не вижу этого при работе с Visual Studio и Microsoft UITesting Coded UI WpfControls. Кто-нибудь знает, как обойти это?

ответ

0

TranslatePoint определено на UIElement. Любой UIElement должен разоблачить это.

Я подозреваю, что проблема заключается в том, что WpfControl не является WPF UIElement. Вы должны иметь возможность использовать свойство BoundedRectangle, чтобы получить правильный окружающий прямоугольник вместо TranslatePoint на UIElement.

+0

Спасибо за этот Рид. Поэтому я немного поиграл и нашел BoundedRectangle - Location возвращает координаты по отношению ко всему экрану, а не к окну, на котором объект включен. Поэтому я понял, что мне нужно будет получить координаты объекта и окна и найти разницу, чтобы получить размещение красного прямоугольника. – stringa

0

Никогда не используйте координаты. Вместо этого получите контроль и используйте метод DrawHighlight(). Это приведет к синему прямоугольнику вне элемента управления.

+0

Пожалуйста, не включайте «закрытие» и подписи в сообщениях. –

+0

Я не уверен, что DrawHighlight является стандартным методом WPF. Я думаю, вы получаете это от некоторых сторонних инструментов. –

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