Установка ShowsNavigationUI = false на объекте Page должна сделать это.Однако, похоже, есть ошибка, которая приведет к сбою по крайней мере в одной последовательности событий:
- Страница уже находится в NavigationWindow, если задано значение
- Страницапереместился назад и обратно
Могут быть и другие сценарии, с которыми я еще не сталкивался, которые приводят к сбою.
Чтобы это работало абсолютно надежно, я игнорируюсвойство Page.ShowsNavigationUI полностью и установите его вместо этого в NavigationWindow.Кажется, это абсолютно надежно.
Вот как это можно сделать в конструкторе вашей страницы:
Dispatcher.BeginInvoke(ApplicationPriority.Render, new Action(() =>
{
var navWindow = Window.GetWindow(this) as NavigationWindow;
if(navWindow!=null) navWindow.ShowsNavigationUI = false;
}));
Если вы сделаете это, не забудьте установить ShowsNavigationUI для любого объекта страницы.
К вашему сведению, вы также можете изменить свой стиль в NavigationWindow, изменив его ControlTemplate.Например, это удаляет все, кроме фактического содержимого страницы:
<Style TargetType="{x:Type NavigationWindow}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type NavigationWindow}">
<AdornerDecorator>
<ContentPresenter Name="PART_NavWinCP"
ClipToBounds="true"/>
</AdornerDecorator>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>