Предположим, что я хотел сделать это, поэтому я могу найти текущую позицию мыши относительно Visual, не требуя доступа к определенному событию мыши:
public static Point GetMousePosition(this Visual relativeTo)
{
return relativeTo.PointFromScreen(GetMousePositionOnScreen());
}
Иногда (обычно, когда я только что переключался между двумя элементами управления вкладками) PointFromScreen выводит InvalidOperationException с сообщением Этот Visual не подключен к PresentationSource.
При просмотре свойств, доступных на Visual, я не вижу никакого отношения к PresentationSource.
Учитывая Visual, как я могу определить, будет ли это исключение, когда я вызываю PointFromScreen на нем?