From 41c9bb96ca4f16af1d782e9d12ab4d846b2ac926 Mon Sep 17 00:00:00 2001
From: Ivan Dmitriev <42055372+IvanDmitriev1@users.noreply.github.com>
Date: Sat, 14 Jan 2023 14:55:19 +0600
Subject: [PATCH 1/6] implemented BreadcrumbBar
---
src/Wpf.Ui/Controls/BreadcrumbBar.cs | 65 +++++++++++
src/Wpf.Ui/Controls/BreadcrumbBarItem.cs | 46 ++++++++
.../BreadcrumbBarItemClickedEventArgs.cs | 13 +++
.../IsLastItemInContainerConverter.cs | 23 ++++
src/Wpf.Ui/Styles/Controls/BreadcrumbBar.xaml | 109 ++++++++++++++++++
src/Wpf.Ui/Styles/Wpf.Ui.xaml | 1 +
6 files changed, 257 insertions(+)
create mode 100644 src/Wpf.Ui/Controls/BreadcrumbBar.cs
create mode 100644 src/Wpf.Ui/Controls/BreadcrumbBarItem.cs
create mode 100644 src/Wpf.Ui/Controls/BreadcrumbBarItemClickedEventArgs.cs
create mode 100644 src/Wpf.Ui/Converters/IsLastItemInContainerConverter.cs
create mode 100644 src/Wpf.Ui/Styles/Controls/BreadcrumbBar.xaml
diff --git a/src/Wpf.Ui/Controls/BreadcrumbBar.cs b/src/Wpf.Ui/Controls/BreadcrumbBar.cs
new file mode 100644
index 000000000..9751eac72
--- /dev/null
+++ b/src/Wpf.Ui/Controls/BreadcrumbBar.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Windows;
+using Wpf.Ui.Common;
+
+namespace Wpf.Ui.Controls;
+
+[StyleTypedProperty(Property = "ItemContainerStyle", StyleTargetType = typeof(BreadcrumbBarItem))]
+public class BreadcrumbBar : System.Windows.Controls.ItemsControl
+{
+ ///
+ /// Property for .
+ ///
+ public static readonly DependencyProperty TemplateButtonCommandProperty =
+ DependencyProperty.Register(nameof(TemplateButtonCommand), typeof(IRelayCommand), typeof(InfoBar),
+ new PropertyMetadata(null));
+
+ ///
+ /// Gets the triggered after clicking
+ ///
+ public IRelayCommand TemplateButtonCommand => (IRelayCommand)GetValue(TemplateButtonCommandProperty);
+
+ ///
+ /// Property for .
+ ///
+ public static readonly RoutedEvent ItemClickedRoutedEvent = EventManager.RegisterRoutedEvent(nameof(ItemClicked),
+ RoutingStrategy.Bubble, typeof(EventHandler), typeof(BreadcrumbBar));
+
+ ///
+ /// Occurs when an item is clicked in the .
+ ///
+ public event RoutedEventHandler ItemClicked
+ {
+ add => AddHandler(ItemClickedRoutedEvent, value);
+ remove => RemoveHandler(ItemClickedRoutedEvent, value);
+ }
+
+ public BreadcrumbBar()
+ {
+ SetValue(TemplateButtonCommandProperty, new RelayCommand