티스토리 뷰

반응형

Screen Orientation 가로/세로 방향 지원 및 자동 변환 대응

 

앱 개발 중 여러가지 삽질을 하고 있다.

첫번째 삽질은 가로/세로 방향 전환에 적응하는 컨텐츠 뷰가 필요한 상황이다.

 

즉 아래와 같이 사진 보는 화면의 경우 가로 방향으로 뉘우면 넓게 보는 것이 목표 였는데..

음 약 한시간의 삽질이 필요했다.

 

 

 

1. 참고

Windows Phone 8.1 Screen Orientation - What’s changed for #WPDev?

http://www.kunal-chowdhury.com/2014/08/whats-new-for-wp8dev-orientation.html

 

 

2. 삽질

기존 Windows Phone 8, Windows Phone 8.1 Silverlight에서는 각 페이지에서 프로퍼티로 제어를 할 수 있도록 되어있다. 하지만 Windows Phone 8.1 RT는 Windows 8.1 처럼 Package.appxmanifest에서 지정을 할 수 있다.

 

 

머 여기까지는 쉽게 할 수 있다. 그런데, 이렇게 한 후에

 

 

DisplayInformation.AutoRotationPreferrences = DisplayOrientations.Landscape;

 

 

이런 내용을 넣으면 되고, 4가지가 더 있다고 하는데 내가 원하는 건 자동으로 가로, 세로가 변경이 되는 것이라구!!!

 

그 때 부터 이 산 저 산을 방황하다 찾은 결론..

 

 

DisplayInformation.AutoRotationPreferences = DisplayOrientations.None;

 

 

이렇게 None로 입력을 하면, 화면이 고정되지 않고, 자동 방향 전환이 된다는..

으흠;; 알면 쉽지만, 모르면 삽질하는..쿨럭

그리고, Windows 8.1은 Package.appxmanifest 설정만 해주면 자동으로 된다.

 

xaml 구성은 아래와 같이 했다.

 

 

<Page
    x:Class="OneSearch.Universal.Views.ContentViewPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:OneSearch.Universal.Views"
    xmlns:ViewModels="using:OneSearch.Universal.ViewModels"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Page.Resources>
        <DataTemplate x:Key="ImageItemTemplate">
            <Viewbox>
                <Image Source="{Binding BaseImageSource}" Stretch="UniformToFill" />
            </Viewbox>
        </DataTemplate>
    </Page.Resources>

    <d:DesignInstance.DataContext>
        <ViewModels:ContentViewPageVM />
    </d:DesignInstance.DataContext>

    <Grid>
        <Grid.ChildrenTransitions>
            <TransitionCollection>
                <EntranceThemeTransition />
            </TransitionCollection>
        </Grid.ChildrenTransitions>

        <FlipView Grid.RowSpan="2" ItemsSource="{Binding CurrentFolder.Original.Items}"
                  SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
                  ItemTemplate="{StaticResource ImageItemTemplate}" />

        <ProgressBar VerticalAlignment="Top"
                     IsIndeterminate="{Binding IsBusy, Mode=OneWay, Source={StaticResource PublicHelper}}"
                     Background="Transparent" />

    </Grid>
</Page>

반응형
댓글