我正在开发一款应用,我希望当用户处于平板电脑模式并从一个应用切换到另一个应用时,当您按下" alt + tab"并且正在显示打开的应用程序。我不想展示" myTrip"该应用程序的屏幕截图显示黑屏。
我知道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;
}
但应用程序的快照图像是在调用这些事件之前拍摄的。关于如何做的任何想法?
问候。
答案 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受保护的屏幕。
希望它有所帮助。