2017-03-10 1 views
0

Comment obtenir l'emplacement absolu de la fenêtre à l'écran?C# Emplacement de la fenêtre UWP à l'écran numéro

En WPF il y avait:

var location = myTextBlock.PointToScreen(new Point(0,0)); 

Mais UWP je ne peux pas trouver quelque chose de similaire ...

Toute idée à ce sujet?

+1

Copie possible de: http://stackoverflow.com/a/12388558/7604843 Essayez la réponse trouvée ici. –

+1

Je reçois les coordonnées du contrôle dans la page. J'ai besoin des coordonnées de la fenêtre sur l'écran ... – user3239349

+0

La réponse vous donne les coordonnées de la page? –

Répondre

1

Vous ne pouvez pas obtenir ni définir l'emplacement de la fenêtre sur l'écran dans l'API UWP actuelle. Vous ne pouvez contrôler que partiellement sa taille.

Vous pouvez utiliser AdjacentToLeftDisplayEdge et AdjacentToRightDisplayEdge pour demander si la fenêtre est accrochée à un côté de l'écran. Vous pouvez également utiliser la propriété IsFullScreenMode pour savoir si l'application est en plein écran.

+0

Vous pouvez obtenir il. Utilisez: ApplicationView.GetForCurrentView(). VisibleBounds Vous ne pouvez pas le définir. – zax

0

Essayez ceci:

En supposant ctl est le contrôle absolu dont l'écran coordonnées cherchez:

Dim ttv As GeneralTransform = ctl.TransformToVisual(Window.Current.Content) 
Dim WindowCoords As Point = ttv.TransformPoint(New Point(0, 0)) 
Dim ScreenCoordsX as double = WindowsCoords.X + ApplicationView.GetForCurrentView().VisibleBounds.Left 
Dim ScreenCoordsY as double = WindowsCoords.Y + ApplicationView.GetForCurrentView().VisibleBounds.Top 

Vous pouvez ajouter ctl.ActualWidth pour trouver le côté droit, mais si vous avez appliqué ScaleTransform pour le contrôle, vous devrez multiplier ActualWidth par cette même échelle, comme ActualWidth n'est pas affecté par les transformations.