Нежелательная навигационная панель WPF - PullRequest
0 голосов
/ 05 мая 2018

Я работаю над некоторым приложением WPF с главным окном и с некоторыми страницами, со мной произошло нечто странное, «внезапно», когда я перехожу со страницы 1 на страницу 2, эта панель инструментов добавила себя в мое окно,

мои вопросы: откуда это взялось? как убрать / придать ему лучший дизайн, я имею ввиду где находится исходный код этой панели инструментов

Это Microsoft по умолчанию?

enter image description here

Вот мой класс окна определения:

<Window x:Class="Tool.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Tool"
         xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        mc:Ignorable="d"       
        ResizeMode="CanResizeWithGrip"
        MinWidth="600"
        MinHeight="500"
        Title="Preparation Tool" Height="600" Width="1080" Icon="icon.ico" Foreground="White" >

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Откуда это взялось? Как это убрать?

Это встроенный навигационный хром в Frame элементе управления. Согласно документам Microsoft, навигационный хром виден, когда Frame использует свой собственный журнал (см. JournalOwnership ).

Если вы не хотите использовать этот навигационный хром, вы можете просто установить для свойства NavigationUIVisibility вашего кадра значение Hidden.

<Frame NavigationUIVisibility="Hidden" />

Если вы не хотите, чтобы управление навигацией по истории текущего Frame также можно было установить для свойства JournalOwnership для Frame значение UsesParentJournal. Это заставляет Frame использовать журнал следующего доступного хоста навигации вверх по дереву контента, если он доступен. В противном случае история навигации не поддерживается для Frame.

<Frame JournalOwnership="UsesParentJournal" />

Или придать ему лучший дизайн? Я имею в виду, где находится исходный код этой панели инструментов?

В Visual Studio (или Visual Studio Blend, который я предпочитаю для дизайна пользовательского интерфейса), просто щелкните правой кнопкой мыши на Frame и выберите Изменить шаблон> Изменить копию и поместите копию шаблона в ResourceDictionary. Затем вы можете изменить шаблон, его ключом является FrameNavChromeTemplateKey .

Это значение по умолчанию для Microsoft?

Да.

P.S. Не забывайте, что когда вы устанавливаете NavigationUIVisibility="Hidden" и JournalOwnership="OwnsJournal", управление историей для самого Frame все еще доступно, и вы можете перемещаться между страницами с помощью команд, таких как кнопки мыши Next / Prev.

0 голосов
/ 05 мая 2018

Вы можете легко скрыть это:

<Frame  NavigationUIVisibility="Hidden"

Но вы должны использовать contentcontrol вместо frame и usercontrols вместо страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...