2010-04-29 3 views
19

У меня есть вид списка, в котором я определил пользовательскую ячейку в качестве пользовательского элемента управления.Как установить расположение окна WPF?

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

Я хочу, чтобы диалог WPF приходит как раз над гиперссылкой ..

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

ответ

54

Window.Left и Window.Top

var location = myTextBlock.PointToScreen(new Point(0,0)); 
window.Left = location.X; 
window.Top = location.Y-window.Height; 
+0

Джош .. Как получить Объект TextBlock (содержащийся внутри гиперссылки) я могу получить гиперссылка через arguement события «отправитель» .. –

+0

я определил гиперссылка, как показано ниже: <гиперссылка х: Name = «condOpt» Нажмите = «condOpt_Click» >

3

Вы должны были бы получить координаты гиперссылке, а затем установить положение окна, как показано здесь:

http://blog.fossmo.net/post/How-to-set-the-windows-position-in-WPF.aspx

Чтобы получить относительные/абсолютные позиции элементов см. здесь для некоторых советов:

http://ivolo.mit.edu/post/WPF-Mouse-and-Point-Acrobatics.aspx

10

Вы должны установить WindowStartupLocation в Manual (который по умолчанию, однако), а также установление значения свойств Top и Left.

Установка CenterScreen заставляет окно располагаться в центре экрана, содержащем курсор мыши.

Установка WindowStartupLocation на CenterOwner заставляет окно располагаться в центре его окна владельца (см. «Владелец»), если указано. Окно владельца может быть либо другим окном WPF, либо окном, отличным от WPF.

Source

-1

если вы установите .left окна больше, чем размер монитора (2000 работает для меня) окно выходит на второй монитор и затем вы можете «максимизировать»

+0

как вы установили, что? –

+0

Значения жесткого кодирования, чтобы заставить работу работать на вашей машине разработки, - это действительно плохая практика. – Danny

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