Я работаю над проектом WPF, в котором у меня есть сетка миниатюр (каждая миниатюра - это SurfaceButton), и нажатие на каждую миниатюру показывает свое собственное всплывающее меню.Всплывающее меню в каждом случае имеет свою миниатюрную фотографию в качестве цели размещения.Миниатюра и всплывающее окно располагаются рядом друг с другом в сетке.
Я разработал всплывающее окно, чтобы имитировать вид всплывающего прокручиваемого меню, которое вы найдете в iOS, в комплекте с маленькой треугольной стрелкой, которая указывает наминиатюра, к которой относится всплывающее окно (всплывающее окно появляется под миниатюрой).
Но, к моему большому удивлению, если вы нажмете на миниатюру, расположенную внизу экрана, WPF переместит всплывающее окно надминиатюру, чтобы она не была за кадром.
Это здорово, но как я могу сравнить положения двух элементов и соответственно переместить стрелку (или скрыть ее и показать другой), чтобы всплывающее окно надthumbnail указывает вниз?
Надеюсь, что это имеет какой-то смысл!
Я пробовал VisualTreeHelper.GetOffset, но он возвращает только смещение от родителя элемента, и кажется, что оно всегда0,0 или 1,1.Я также пробовал UIElement.PointToScreen, но числа, которые я получаю от двух элементов, похоже, не меняются, когда всплывающее окно перемещается.
Я уверен, что есть простое решение, которое я пропускаю.