2016-04-25 15 views
8

Sto sviluppando un'applicazione e mi piacerebbe quando l'utente è in modalità Tablet e passa da un'applicazione all'altra per mostrare una schermata nera quando si preme "alt + tab" e le app aperte sono mostrate. Mi piacerebbe invece di mostrare lo screenshot "myTrip" dell'app per mostrare uno schermo nero.Nascondi anteprima app dalla barra delle applicazioni Alt-tab in Windows 10 Universal App Platform

enter image description here

so per WPF abbiamo avuto ShowInTaskbar = false ma niente di simile in Windows 10 Universal App Platform.

ho provato finora:

Window.Current.CoreWindow.VisibilityChanged += CoreWindow_VisibilityChanged;

private void Current_VisibilityChanged(object sender, VisibilityChangedEventArgs e) 
    { 
     var parentGrid = RootPanel(); 
     parentGrid.Visibility = e.Visible ? Visibility.Visible : Visibility.Collapsed; 
    } 

Ma l'immagine istantanea della app è presa prima di questi eventi sono chiamati. Qualche idea su come farlo?

Saluti.

+0

Non so, ora, se questo è possibile. Dico solo perché mi hai chiesto di persona. Detto questo, muoio dalla voglia di conoscere il caso d'uso per "perché" vuoi farlo. –

+1

Grazie Jerry, ci sono sempre degli strani scenari, e alcune app non vogliono far trapelare nessuna informazione che potrebbe essere mostrata sullo schermo, in questo caso nelle miniature. Saluti. – toroveneno

risposta

2

Non capisco perché esattamente vuoi farlo, ma qui va.

È necessario gestire l'evento Attivato del thread corrente e posizionare un controllo sul contenuto. Vedi l'esempio seguente.

In primo luogo, il codice XAML:

<Canvas Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" > 
    <Canvas x:Name="contetProtector" Canvas.ZIndex="10" Background="Black" Width="1014" Height="758" Visibility="Collapsed"/> 
    <TextBlock Text="My precious content" FontSize="50" Canvas.Top="50" Canvas.Left="50"/> 
    <TextBlock Text="Nobody should see it" FontSize="50" Canvas.Top="100" Canvas.Left="50"/> 
</Canvas> 

Poi, il codebehind della pagina:

public MainPage() 
{ 
    this.InitializeComponent(); 
    CoreWindow.GetForCurrentThread().Activated += CoreWindowOnActivated; 
} 

private void CoreWindowOnActivated(CoreWindow sender, WindowActivatedEventArgs args) 
{ 
    if(args.WindowActivationState == CoreWindowActivationState.Deactivated)    
     this.contetProtector.Visibility = Visibility.Visible; 
    else 
     this.contetProtector.Visibility = Visibility.Collapsed; 
} 

Here si può vedere lo schermo non protetto/attiva, e here quello protetto.

Spero che aiuti.

+0

Ciao Luri, è un caso molto strano per problemi di sicurezza. Grazie per la risposta! – toroveneno

Problemi correlati