J'essaie d'obtenir les coordonnées X, Y d'un contrôle contextuel. J'ai essayé:Contrôle contextuel WPF - Trouver coordonnées X, Y
VisualTreeHelper.GetOffset (Popup);
mais le vecteur contient toujours retourné (0,0) pour X et Y.
Le parent de la fenêtre est la racine de mise en page, qui est une grille.
Le CustomPopupPlacementCallback renvoie également toujours 0,0 pour son paramètre Point.
L'objectif est de permettre à l'utilisateur de faire glisser le popup n'importe où sur l'écran. J'allais essayer d'accomplir cela en obtenant la position actuelle de la fenêtre contextuelle et de la souris, et en déplaçant la fenêtre contextuelle dans la même direction que celle de la souris. Mise à jour
-------------------- --------------------
Chris Nicol, j'ai essayé votre réponse avec le code suivant, mais toujours recevoir 0,0 pour 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>
code Derrière:
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));
}
}
J'ai le même problème, avez-vous trouvé une solution? Cordialement – Cinaird
Je n'ai pas trouvé de solution. Désolé pour un long délai. – gamzu07
Ok, Merci pour la réponse – Cinaird