views:

194

answers:

3

I have a List View in which I have defined a custom cell as a user control.

In the custom cell I given user hyperlink, I am showing a WPF dialog when user clicks on a hyperlink.

I want WPF dialog comes just above the hyperlink..

Please let me know how can I acheive this or how to set the location of the dialog so that it just comes above the hyperlink.

+1  A: 

Window.Left and Window.Top

var location = myTextBlock.PointToScreen(new Point(0,0));
window.Left = location.X;
window.Top = location.Y-window.Height;
Josh Einstein
Josh .. How to get the textblock (contained inside the hyperlink)I can get the the hyperlink through event arguement "sender"..
Ashish Ashu
I have defined the hyperlink as below :<Hyperlink x:Name="condOpt" Click="condOpt_Click"> <TextBlock Foreground="Blue" Text="{Binding Path = SelectedOperator.Value}" TextWrapping="Wrap" /> </Hyperlink>
Ashish Ashu
+2  A: 

You would need to get the coordinates of the hyperlink and then set the window position as shown here:

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

To get the relative/absolute positions of elements have a look here for some tips:

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

Igor Zevaka
A: 

You need to set the WindowStartupLocation to Manual (which is the default however) as well as setting the Top and Left property values.

Setting CenterScreen causes a window to be positioned in the center of the screen that contains the mouse cursor.

Setting WindowStartupLocation to CenterOwner causes a window to be positioned in the center of its owner window (see Owner), if specified. The owner window can be either another WPF window or a non-WPF window.

Source

ChrisF