Ответ 1
Далее я отвечу.
В Windows-телефоне 8.1 есть два значения перечисления ApplicationViewBoundsMode.
-
UseVisible, страницы внутри приложения будут использовать только видимую область, исключая StatusBar, панель приложений и кнопки Soft navigation.
Чтобы приложение использовало параметр ApplicationViewBoundsMode.UseVisible
, добавьте следующее в app.xaml.cs перед `Windows.Current.Activate();
#if WINDOWS_PHONE_APP
ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible);
#endif
- UseCoreWindow, выложите содержимое окна в область, занятую основным окном (то есть, включая любые окклюдированные области, включая кнопки мягкой навигации).
Чтобы ваше приложение использовало параметр ApplicationViewBoundsMode.UseCoreWindow
, добавьте следующее в app.xaml.cs перед Windows.Current.Activate();
#if WINDOWS_PHONE_APP
ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);
#endif
В некоторых случаях разработчики могут захотеть использовать параметр UserCoreWindow
, чтобы показывать контент в панели приложений, но в качестве программных кнопок навигации по боковым эффектам будут закрыты части вашей страницы для их устранения, следуйте следующему решению.
Вы можете прослушивать ApplicationView.GetForCurrentView(). VisibleBoundsChanged в WindowsPhone и обновлять поле вашей страницы.
Цитата из объяснения проблемы из приведенной выше ссылки
Если режим привязки к представлению приложения установлен в ApplicationViewBoundsMode.UseCoreWindow в приложении App.Xaml.cs, то телефон сообщает весь размер экрана - не только часть, которая обычно берется в строке состояния сверху, а панель приложения внизу, но также и часть, которая используется панелью кнопок.
И фрагмент из его решения, где он обновляет поле страницы
void KeepInViewBehaviorVisibleBoundsChanged(ApplicationView sender, object args)
{
UpdateBottomMargin();
}
private void UpdateBottomMargin()
{
if (WindowHeight > 0.01)
{
var currentMargins = AssociatedObject.Margin;
var newMargin = new Thickness(
currentMargins.Left, currentMargins.Top, currentMargins.Right,
originalBottomMargin +
(WindowHeight - ApplicationView.GetForCurrentView().VisibleBounds.Bottom));
AssociatedObject.Margin = newMargin;
}
}