2017-03-10 6 views
0

화면의 창 절대 위치를 얻는 방법?C# 화면의 UWP 창 위치 문제

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

그러나 UWP에 나는 ...이에

어떤 생각을 유사한 아무것도 찾을 수 없습니다 : WPF에서

이 있었다?

+1

가능한 복제본 : http://stackoverflow.com/a/12388558/7604843 답변을보십시오. –

+1

컨트롤의 좌표가 페이지에 나타납니다. 화면에 창 좌표가 필요합니다 ... – user3239349

+0

대답은 페이지 좌표를 제공합니까? –

답변

1

현재 UWP API의 화면에서 창 위치를 가져 오거나 설정할 수 없습니다. 크기를 부분적으로 만 제어 할 수 있습니다.

AdjacentToLeftDisplayEdgeAdjacentToRightDisplayEdge을 사용하면 창이 화면의 측면에 물리도록 쿼리 할 수 ​​있습니다. IsFullScreenMode 속성을 사용하여 앱이 전체 화면인지 여부를 문의 할 수도 있습니다.

가정 CTL은 절대 화면 좌표 당신이 찾는 컨트롤입니다 :

+0

그것. 사용 : ApplicationView.GetForCurrentView(). VisibleBounds 그냥 설정할 수 없습니다. – zax

0

이 시도

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 

당신은 오른쪽을 찾을 수 ctl.ActualWidth을 추가 할 수 있지만 적용한 경우 ScaleTransform을 컨트롤에 적용하면 ActualWidth는 변형의 영향을받지 않으므로 ActualWidth에 같은 스케일을 곱해야합니다.