在Windows 10 Universal App Platform中隐藏Alt-tab任务栏中的应用预览

时间:2016-04-25 14:18:39

标签: c# win-universal-app windows-10-universal

我正在开发一款应用,我希望当用户处于平板电脑模式并从一个应用切换到另一个应用时,当您按下" alt + tab"并且正在显示打开的应用程序。我不想展示" myTrip"该应用程序的屏幕截图显示黑屏。

enter image description here

我知道WPF我们有ShowInTaskbar = false,但在Windows 10通用应用平台中却没有。

我到目前为止尝试过:

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

但应用程序的快照图像是在调用这些事件之前拍摄的。关于如何做的任何想法?

问候。

1 个答案:

答案 0 :(得分:2)

我不明白你为什么要这么做,但是就这样了。

您需要处理当前线程的Activated事件,而不是对您的内容进行控制。见下面的例子。

首先,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>

然后,页面的代码隐藏:

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您可以看到未受保护/活动的屏幕,以及here受保护的屏幕。

希望它有所帮助。