UWP заменить основной вид на полноэкранный кадр - PullRequest
0 голосов
/ 07 мая 2019

В моем приложении у меня есть MainView (красный), который состоит из MainMenu и Frame (синий) (см. Рисунок)

MainView and Frame

MainMenu должно быть видно на большинстве страниц.Рамка заменяется различными страницами.

<Page 
<!--[properties (shortened)...]-->

    <!-- This is the MainMenu -->
    <Grid Grid.Row="0"
          Name="MainMenu"
          Visibility="{x:Bind MenuVisibility}"
          Background="#1F3d7A"
          Grid.ColumnSpan="3">

          <!--[content (shortened)...]-->

    </Grid>

    <!-- This is the Frame to display the different pages -->
    <Frame Grid.Row="1"
           x:Name="Frame"
           Grid.ColumnSpan="3" 
           Grid.Column="0">
        <Frame.ContentTransitions>
            <TransitionCollection>
                <NavigationThemeTransition />
            </TransitionCollection>
        </Frame.ContentTransitions>
    </Frame>
    <!--[more content (shortened)...]-->
</Page>

Однако на некоторых страницах я не хочу, чтобы MainMenu отображалось.Вместо этого Frame должен быть в полноэкранном режиме.

В другом потоке кто-то достиг этого с помощью следующего кода .

Я скопировал код, и он работает.К сожалению, это приводит к некоторым ошибкам.Например, когда в моем кадре содержится элемент MediaElement, элементы управления исчезают при создании кадра в полноэкранном режиме.

Есть ли другое решение, позволяющее исчезнуть MainMenu или сделать внутренний кадр полноэкранным, и если да, то как?

Ответы [ 2 ]

2 голосов
/ 08 мая 2019

Однако на некоторых страницах я не хочу, чтобы главное меню отображалось.Вместо этого кадр должен быть в полноэкранном режиме.

Для вашего сценария вам необходимо изменить метод fullscreen. Примечание : * класс 1008 * содержит поле Frame, пожалуйста, избегайте установки имени кадра для Frame.

private void Button_Click(object sender, RoutedEventArgs e)
{

    if (!fullScreen)
    {
        mainPageBackup = this.Frame;
        Window.Current.Content = MyFrame;     
        ApplicationView.GetForCurrentView().TryEnterFullScreenMode();              
        fullScreen = true;
    }
    else
    {          
        Window.Current.Content = mainPageBackup;                  
        ApplicationView.GetForCurrentView().ExitFullScreenMode();            
        fullScreen = false;
    }
}
0 голосов
/ 14 мая 2019

Я решил свою проблему, создав пользовательский контроль транспорта.Вы должны создать CustomMediaTransportControls.Вот введение: https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/custom-transport-controls

...