Estoy tratando de obtener las coordenadas X, Y de un control emergente. Lo he intentado:WPF Popup Control - Buscar X, Y Coordenadas
VisualTreeHelper.GetOffset (Popup);
pero regresó el vector siempre contiene (0,0) para X e Y.
El padre de la ventana emergente es la raíz de disposición, que es una cuadrícula.
CustomPopupPlacementCallback también devuelve siempre 0,0 para su parámetro Punto.
El objetivo es permitir al usuario arrastrar la ventana emergente en cualquier lugar de la pantalla. Iba a tratar de lograr esto obteniendo la posición actual del pop-up y del mouse, y moviendo la ventana emergente en la misma dirección en que se mueve el mouse.
actualización -------------------- --------------------
Chris Nicol, he intentado su respuesta con el siguiente código, pero aún así recibir 0,0 para rootPoint:
Xaml:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Test.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="800" Height="600">
<Grid x:Name="LayoutRoot">
<Popup x:Name="Popup" IsOpen="True" Placement="Center" Width="100" Height="100">
<Button Click="Button_Click" Content="Test" />
</Popup>
</Grid>
código subyacente:
public partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
// Insert code required on object creation below this point.
}
private void Button_Click(object sender, RoutedEventArgs e)
{
GeneralTransform transform = Popup.TransformToAncestor(LayoutRoot);
Point rootPoint = transform.Transform(new Point(0, 0));
}
}
Tengo el mismo problema, ¿encontró alguna solución? Saludos cordiales – Cinaird
No he encontrado una solución. Perdón por un gran retraso. – gamzu07
Ok, gracias por la respuesta – Cinaird