UWP несколько представлений MenuItem в NavigationView

#c# #user-interface #uwp #navigationview #multiple-views

#c# #пользовательский интерфейс #uwp #navigationview #множественные представления

Вопрос:

Есть ли способ NavigationView в UWP иметь несколько «представлений» для NavigationViewMenuItems ? Концепция заключалась бы в том, чтобы иметь категории или папки как MenuItems , и при нажатии или NavigationViewMenuItems они выдвигались бы влево и показывали содержимое папки или категории. Затем при обратном переходе из папки список папок и категорий снова переместился бы слева. Я знаю, что могу изменить NavigationView.MenuItemsSource в C #, но вместо этого я хотел бы, чтобы это было сделано в основном в XAML. Я перепробовал множество способов сделать это, но, похоже, не могу найти способ, который работает.

На самом деле у меня нет никакого кода, чтобы продемонстрировать это, поскольку это проблема всей концепции, а не отдельная ошибка, которая не работает. Я искал везде и нашел множество статей / ссылок о загрузке разных представлений в NavigationView.Content , но ничего об изменении MenuItems части.

Есть ли у кого-нибудь идеи о том, как этого добиться, или ссылка на руководство, которому я мог бы следовать? Я не могу представить, что этого никогда раньше не делалось, это кажется таким понятным пользовательским интерфейсом.

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

1. Вы пробовали переопределить стиль по умолчанию для NavigationView?

2. Нет, я даже не думал об этом…. Я знаю, как создать пользовательский стиль, но как это будет работать при наличии нескольких представлений меню?

3. Итак, я почти уверен, что это не особенность NavigationView, я могу ошибаться. Итак, что я хотел бы сделать, это взломать стиль navigationview, создать на его основе свой собственный стиль и встроить нужные вам функции. Затем я бы открыл исходный код и поделился им в Twitter # UWP 🙂

4. Итак, по сути, создайте шаблонный элемент управления, который работал бы следующим образом. Да, я мог бы это сделать … 😁. Я действительно удивлен, что это не встроенная функция, хотя у меня есть множество приложений для Android, которые используют именно этот элемент управления.

5. Спасибо, я обязательно взгляну на это!

Ответ №1:

Что вам действительно нужно, так это древовидный навигатор. UWP не имеет такого встроенного элемента управления для нас. Вы могли бы использовать сторонний элемент управления, такой как Syncfusion TreeNavigator.

Смотрите пример кода на GitHub:https://github.com/syncfusion/uwp-demos/tree/master/Navigation

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

1. Я только что установил его, и это в основном то, что я ищу, спасибо! Вы случайно не знаете, можно ли его по-прежнему изменять, например, могу ли я по-прежнему создавать пользовательский стиль или даже шаблонный элемент управления на его основе? Есть некоторые вещи, которые я бы предпочел изменить…

2. Проверьте его документ.

3. Я смотрел на это, но я никогда не использовал коммерческую (несвободную / с открытым исходным кодом) библиотеку, поэтому я не знаю, как и будет ли это работать.

4. Я еще немного поиграл с этим, и стало возможным изменить стиль древовидного навигатора, но я также обнаружил недостаток в этом элементе управления. Его нельзя использовать внутри NavigationView.MenuItems без потери функциональности перехода к вложенным папкам. Если я использую только TreeNavigator, то я теряю NavigationView возможности иметь как макет панели, так и рамки. Это в основном возвращает меня к первоначальной проблеме. Пока я думаю, что лучший подход — следовать предложению @anthony-russell и создавать шаблон NavigationView .