첫번째 방법인 xaml을 이용하는 방법은 Panel 컨트롤 등 아래에 Popup을 넣는 방법으로 이렇게 해주면 Orientation이 알아서 적용되고, Popup이 띄워질 위치의 기준은 Panel컨트롤이 됩니다.
아래는 xaml코드의 일부로 Popup안에 Button을 하나 올려놓고, 해당 Popup은 ContentPanel(Grid control) 기준으로 50*50 위치에 팝업되어서 나타납니다.
두번째 방법인 RotateTransform을 이용하는 방법은 Landscape 상태일떄 Popup을 각각 90, -90도 돌려주고, 그에 맞게 VerticalOffset과 HorizontalOffset을 음수 좌표로 변경해줘야합니다.
아래는 Behind code의 일부로 Popup을 전체화면 기준으로 300*300에 팝업되도록 할 때 Orientation이 LandscapeLeft일때 Popup을 설정하는 코드입니다. RotateTransform을 이용해서 90도로 변경하고, VerticalOffset을 음수좌표로 변경하는 코드로 이때 480은 (Landscape기준)화면의 세로 길이입니다.
RotateTransform transform = new RotateTransform(); transform.Angle = 90d; popup.RenderTransform = transform; popup.VerticalOffset = 300 - 480; popup.HorizontalOffset = 300;
Portrait
LandscapeLeft
LandscapeRight
아래는 참고한 사이트입니다~