#wpf #user-interface #xaml #user-controls
#wpf #пользовательский интерфейс #xaml #пользовательские элементы управления
Вопрос:
Я хочу реализовать элемент управления breadcrumb, который выглядит следующим образом:
Он должен соответствовать следующим критериям:
- должно быть легко перемещать уровни в стек
- текущий уровень должен иметь альтернативный стиль
- на всех родительских уровнях должно быть удобное наведение курсора мыши на
- ширина каждого уровня должна гибко увеличиваться вместе с его содержимым
- (Необязательно) при ограниченной ширине содержимого текст должен быть пропущен
Прямо сейчас я использую горизонтальную панель стека и просто добавляю стилизованные кнопки. Но я не вижу прямого способа достижения перекрывающегося дизайна.
Как бы вы отнеслись к XAML-структуре и используемым XAML-элементам управления?
Ответ №1:
Вы можете реализовать пользовательский элемент управления BreadCrumb, расширяющийся из TabControl.
Проверьте эту ссылку.
Комментарии:
1. Отлично! Ссылка — это как раз то, что я искал.
2. Я быстро взглянул на исходный код и не смог понять, как автоматически отличить последний (текущий) элемент.
3. Ссылка не работает, есть какой-нибудь альтернативный источник?
Ответ №2:
Я бы использовал ItemsControl, использующий горизонтальную StackPanel в качестве ItemsPanel и несколько стилизованных кнопок на DataTemplate. Разумное использование отрицательных полей должно обеспечить эффект перекрытия.