Как скрыть ApplicationView - PullRequest
       4

Как скрыть ApplicationView

0 голосов
/ 21 декабря 2018

У меня есть приложение UWP, и оно создает второе представление, например:

overlayView = CoreApplication.CreateNewView();

Затем показывает, что оно работает нормально.

Я также хочу скрыть представление, когда пользователь нажимаеткнопка, но не уничтожить вид.
Как я могу это сделать?

Мой код:

if (!isOverlayShowing)
{
    isOverlayShowing = true;
    if (overlayView == null)
    {
        overlayView = CoreApplication.CreateNewView();

        await overlayView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, OverlayHandler);
        ApplicationViewSwitcher.DisableSystemViewActivationPolicy();
    }
    await ApplicationViewSwitcher.TryShowAsStandaloneAsync(overlayViewID);
    overlayView.CoreWindow.IsInputEnabled = false;
}

и создатель наложения:

void OverlayHandler()
{
    overlayFrame = new Frame();
    overlayFrame.BorderThickness = new Thickness(0);
    Window.Current.Content = overlayFrame;
    // You have to activate the window in order to show it later.
    Window.Current.Activate();
    overlayFrame.Background = new SolidColorBrush(Colors.Green);

    overlayViewID = ApplicationView.GetForCurrentView().Id;
}

Я пытался скрыть это с помощью:

async Task<int> HideBlinkFrame()
{
    if(overlayView == null || isOverlayShowing == false)
    {
        return 1;
    }

    await overlayFrame.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        overlayFrame.Visibility = Visibility.Collapsed;
    });

    isOverlayShowing = false;
    return 0;
}

Но это просто скрывает внутреннюю рамку, а не окно.

Я вижу, что ApplicationView имеет TryConsolidateAsync(), но CoreApplicationView не имеет этого метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...