在 Windows 10 Universal App Platform 中隐藏 Alt-tab 任务栏中的应用程序预览
Hide app preview from Alt-tab taskbar in Windows 10 Universal App Platform
我正在开发一个应用程序,我希望当用户处于平板电脑模式并从一个应用程序切换到另一个应用程序时,当您按下 "alt + tab" 并显示打开的应用程序时显示黑屏.我不想显示应用程序的 "myTrip" 屏幕截图,而是显示黑屏。
我知道对于 WPF 我们有 ShowInTaskbar = false
但在 Windows 10 Universal App Platform 中没有类似的东西。
到目前为止我试过了:
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;
}
但是应用程序的快照图像是在调用这些事件之前拍摄的。知道怎么做吗?
此致。
我不明白你为什么要这样做,但就是这样。
您需要处理当前线程的 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 you can see the unprotected/active screen, and here受保护的。
希望对您有所帮助。
我正在开发一个应用程序,我希望当用户处于平板电脑模式并从一个应用程序切换到另一个应用程序时,当您按下 "alt + tab" 并显示打开的应用程序时显示黑屏.我不想显示应用程序的 "myTrip" 屏幕截图,而是显示黑屏。
我知道对于 WPF 我们有 ShowInTaskbar = false
但在 Windows 10 Universal App Platform 中没有类似的东西。
到目前为止我试过了:
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;
}
但是应用程序的快照图像是在调用这些事件之前拍摄的。知道怎么做吗?
此致。
我不明白你为什么要这样做,但就是这样。
您需要处理当前线程的 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 you can see the unprotected/active screen, and here受保护的。
希望对您有所帮助。