Как скрыть SystemTray

У меня проблема с SystemTray.

В моем приложении есть экраны Panorama и Pivot. Поэтому я хочу сделать SystemTray невидимым на обоих экранах.

Мой код был:

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

Головная боль в основном была связана с тем, что лоток снова появляется после получения жеста, такого как щелчок или любые другие действия.

Я также внес следующие изменения:

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

Стало хуже. Лоток стал видимым и приобрел белый цвет, несмотря на то, что он был установлен как прозрачный.

С Уважением.


person Community    schedule 18.06.2012    source источник
comment
Есть ли у вас способ воспроизвести отображение панели задач, когда для ее видимости установлено значение false?   -  person Matt Lacey    schedule 19.06.2012
comment
что вы подразумеваете под полученным толчком? Я интегрировал push в свое приложение, и у меня есть элементы управления поворотом / панорамой с отключенным системным лотком, и он работает плавно, как и ожидалось. нужно больше входов для решения вашей проблемы.   -  person bragboy    schedule 26.07.2012


Ответы (3)


Попробуйте установить видимость в коде позади, используя

        SystemTray.IsVisible = false;

Если не работает, в конструкторе страницы или в функции OnNavigatedTo попробуйте следующую строку кода

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

(Цвет) App.Current.Resources ["PhoneBackgroundColor"] установит цвет переднего плана как задний, придав ему эффект прозрачности.

** Будет работать только в том случае, если вы не добавили вручную какой-либо собственный фон.

Сообщите мне, если это не сработает.

person Milan Aggarwal    schedule 07.08.2012
comment
Установка SystemTray.IsVisible = false; не работает, но сопоставление переднего плана SystemTray с фоном приложения - отличный трюк, который работает! - person Rob.Kachmar; 07.09.2014

попробуйте удалить shell:SystemTray.IsVisible="False" из верхней части вашей xaml-страницы. Затем попробуйте.
Если это не сработает, используйте код в событии загрузки главной страницы, например SystemTray.IsVisible = false;

person dinchy87    schedule 28.09.2013

Видимость SystemTray должна быть установлена ​​таким образом в коде за MSDN.

SystemTray.SetIsVisible(this, false);

В качестве альтернативы, если вы просто хотите имитировать тот же «невидимый» эффект, установите непрозрачность на 0, чтобы скрыть большую часть полосы, и цвет переднего плана на прозрачный, чтобы скрыть время. Единственное предостережение заключается в том, что остальные элементы управления все равно будут знать, что он есть, поэтому вам необходимо отрегулировать верхнее поле хотя бы первого элемента управления на странице вверх на 32 пикселя (т.е. Margin = "0, -32, 0,0), чтобы получить тот же эффект, что и при установке значения false в XAML.

SystemTray.SetOpacity(this, 0);
SystemTray.SetForegroundColor(this, Color.FromArgb(0, 0, 0, 0));
person Rob.Kachmar    schedule 07.09.2014