Sto cercando di ottenere le coordinate X, Y di un controllo popup. Ho provato:WPF Popup Controllo - Trova coordinate x, y
VisualTreeHelper.GetOffset (Popup);
ma il vettore restituito sempre contiene (0,0) per X e Y.
Il genitore della comparsa è la radice di layout, che è una griglia.
Anche il CustomPopupPlacementCallback restituisce sempre 0,0 per il suo parametro Point.
L'obiettivo è consentire all'utente di trascinare il popup ovunque sullo schermo. Stavo per cercare di ottenere questo ottenendo la posizione attuale di popup e mouse e spostando il popup nella stessa direzione del mouse.
Aggiornamento -------------------- --------------------
Chris Nicol, ho cercato la risposta con il seguente codice, ma continuare a ricevere 0,0 per 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>
codice Dietro:
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));
}
}
Ho lo stesso problema, hai trovato qualche soluzione? Cordiali saluti – Cinaird
Non ho trovato una soluzione. Ci scusiamo per un lungo ritardo. – gamzu07
Ok, grazie per la risposta – Cinaird