Окно навигации WPF с большим количеством элементов управления

#wpf #vb.net #visual-studio-2010 #wpf-controls

#wpf #vb.net #visual-studio-2010 #wpf-элементы управления

Вопрос:

Я изучаю WPF и NavigationWindow в частности. Я хочу добавить что-то в окно, например, строку состояния, панель избранного и т.д. К сожалению, когда я пытаюсь что-либо добавить, я получаю сообщение об ошибке.

Я надеюсь, что может быть способ добавлять страницы в закладки, когда кто-то просматривает между ними; пусть пользователь перетаскивает страницы на панель избранного.

Что-то похожее со строкой состояния; Я хотел бы иметь информацию о конкретной странице в строке состояния, без необходимости размещать ее на каждой отдельной странице.

Возможно ли это с помощью окна навигации, или я запускаю неправильное дерево?

Редактировать:

 <NavigationWindow x:Class="Window2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Nav Test" Height="300" Width="300" Source="Window1.xaml" >
    <StatusBar></StatusBar> ' The type 'NavigationWindow' does not support direct content.
</NavigationWindow>
  

Обновление, с чем я пошел:

 <Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Tracks" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="20" />
            <RowDefinition Height="26" />
            <RowDefinition Height="265*" />
        </Grid.RowDefinitions>
        <Menu Name="Menu1" />
        <Frame Grid.Row="2" Name="Frame1" Source="PageSearchResults.xaml" />
        <ToolBar Grid.Row="1" Name="ToolBar1" >
            <Button Content=" " Name="Button1" />
        </ToolBar>
    </Grid>
</Window>
  

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

Комментарии:

1. Можете ли вы опубликовать свой код и что за сообщение об ошибке вы получаете?

Ответ №1:

Если вы хотите создать свой собственный контент отдельно от Страницы, то не используйте NavigationWindow. Вместо этого используйте обычное окно. Затем в том месте, где вы хотите разместить содержимое навигации, добавьте рамку. Frame поддерживает всю ту же навигацию, которую вы можете выполнять с помощью NavigationWindow (фактически, NavigationWindow — это, по сути, просто окно с заполняющей его рамкой).

Комментарии:

1. Да, это то, к чему я в итоге пришел. Кажется, пока все работает нормально. Сейчас просто пытаюсь разобраться с закладками посещенных страниц. Спасибо за ответ

Ответ №2:

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

Комментарии:

1. Единственная проблема с этим заключается в том, что мне пришлось бы иметь статус и навигацию на каждой странице. возможно, со строкой состояния дело обстоит не хуже, но панель навигации / избранного не была бы практичной, я этого не делаю. Однако я изучаю фреймы.