2

我在使用 SystemTray 时遇到问题。

我的应用程序有全景和枢轴屏幕。所以我希望在两个屏幕上都使 SystemTray 不可见。

我的代码是:

<phone:PhoneApplicationPage shell:SystemTray.IsVisible="False" 

头痛主要是因为在收到手势(如轻弹或任何其他动作)后托盘重新出现

我还进行了以下更改:

shell:SystemTray.Opacity="0"
shell:SystemTray.ForegroundColor="Transparent"
shell:SystemTray.IsVisible="True"

情况变得更糟了。尽管将托盘设置为透明,但托盘变得可见并带有白色。

问候。

4

3 回答 3

2

尝试在使用后面的代码中设置可见性

        SystemTray.IsVisible = false;

如果它不起作用,请在页面的构造函数或 OnNavigatedTo 函数中尝试以下代码行

        SystemTray.SetForegroundColor(this, (Color)App.Current.Resources["PhoneBackgroundColor"]);

(Color)App.Current.Resources["PhoneBackgroundColor"] 将前景色设置为背景色,使其具有透明效果。

**只有在您没有手动添加任何自定义背景时才有效。

让我知道它是否不起作用。

于 2012-08-07T12:38:54.323 回答
0

尝试shell:SystemTray.IsVisible="False"从您的 xaml 页面顶部删除。那就试试吧。
如果这不起作用,则使用主页加载事件后面的代码,例如SystemTray.IsVisible = false;

于 2013-09-28T00:08:33.077 回答
0

SystemTray 的可见性需要在每个MSDN后面的代码中以这种方式设置。

SystemTray.SetIsVisible(this, false);

或者,如果您只是想模拟相同的“不可见”效果,请将不透明度设置为 0 以隐藏大部分条,将前景色设置为透明以隐藏时间。需要注意的是,您的其余控件仍会知道它在那里,因此您需要将页面上至少第一个控件的上边距向上调整 32 像素(即 Margin="0,-32, 0,0) 以完成与在 XAML 中将其设置为 false 完全相同的效果。

SystemTray.SetOpacity(this, 0);
SystemTray.SetForegroundColor(this, Color.FromArgb(0, 0, 0, 0));
于 2014-09-07T16:10:08.280 回答