2016-04-25 11 views
8

Ich entwickle eine App und ich möchte, wenn der Benutzer im Tablet-Modus ist und von einer App zur anderen schaltet, um einen schwarzen Bildschirm anzuzeigen, wenn Sie drücken "alt + tab" und die geöffneten Apps werden angezeigt. Ich möchte anstelle des "myTrip" Screenshots der App einen schwarzen Bildschirm zeigen.App-Vorschau von Alt-Tab-Taskleiste in Windows 10 Universal App Platform ausblenden

enter image description here

ich für WPF wissen wir hatten ShowInTaskbar = false aber nichts wie das in Windows 10 Universal-App-Plattform.

Ich habe versucht, so weit:

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; 
    } 

Aber das Snapshot-Image der App genommen wird, bevor diese Ereignisse genannt werden. Irgendeine Idee, wie es geht?

Grüße.

+0

Ich weiß nicht, gerade jetzt, wenn das überhaupt möglich ist. Ich sage das nur, weil du mich persönlich gefragt hast. Davon abgesehen möchte ich den Anwendungsfall für "warum" wissen. –

+1

Dank Jerry, es gibt immer seltsame Szenarien, und einige Anwendungen wollen einfach keine Informationen verlieren, die auf dem Bildschirm angezeigt werden, in diesem Fall in den Miniaturansichten. Grüße. – toroveneno

Antwort

2

Ich verstehe nicht, warum genau Sie das tun wollen, aber hier geht es.

Sie müssen mit dem Activated-Ereignis des aktuellen Threads umgehen und dann eine Kontrolle über Ihre Inhalte vornehmen. Siehe das Beispiel unten.

Erstens, die 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> 

Dann wird der Code-Behind der Seite:

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 Sie den ungeschützten/aktiven Bildschirm sehen können, und here derjenige geschützt.

Ich hoffe, es hilft.

+0

Hallo Luri, es ist ein sehr seltsamer Fall für Sicherheitsbedenken. Danke für die Antwort! – toroveneno

Verwandte Themen