Элементарное управление с помощью XAML

#wpf #user-interface #xaml #user-controls

#wpf #пользовательский интерфейс #xaml #пользовательские элементы управления

Вопрос:

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

пример дизайна breadcrumb

Он должен соответствовать следующим критериям:

  • должно быть легко перемещать уровни в стек
  • текущий уровень должен иметь альтернативный стиль
  • на всех родительских уровнях должно быть удобное наведение курсора мыши на
  • ширина каждого уровня должна гибко увеличиваться вместе с его содержимым
  • (Необязательно) при ограниченной ширине содержимого текст должен быть пропущен

Прямо сейчас я использую горизонтальную панель стека и просто добавляю стилизованные кнопки. Но я не вижу прямого способа достижения перекрывающегося дизайна.

Как бы вы отнеслись к XAML-структуре и используемым XAML-элементам управления?

Ответ №1:

Вы можете реализовать пользовательский элемент управления BreadCrumb, расширяющийся из TabControl.

Проверьте эту ссылку.

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

1. Отлично! Ссылка — это как раз то, что я искал.

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

3. Ссылка не работает, есть какой-нибудь альтернативный источник?

Ответ №2:

Я бы использовал ItemsControl, использующий горизонтальную StackPanel в качестве ItemsPanel и несколько стилизованных кнопок на DataTemplate. Разумное использование отрицательных полей должно обеспечить эффект перекрытия.