From 8036cae6b1bf4dfb47b5bcdcd829656ca3fe43c0 Mon Sep 17 00:00:00 2001 From: Mahdi Hosseini Date: Fri, 17 Jan 2025 18:00:34 +0330 Subject: [PATCH] Add ShowStepIndex Option for StepBar #23 --- .../Controls/StepBar/StepBar.Property.cs | 18 ++++++++++++++++++ .../Controls/StepBar/StepBar.cs | 1 + .../Controls/StepBar/StepBarItem.cs | 9 +++++++++ dev/DevWinUI.Controls/Themes/Generic.xaml | 5 +++-- .../Themes/Styles/Controls/StepBar.xaml | 7 +++++-- .../Views/Pages/Features/StepBarPage.xaml | 6 +++++- 6 files changed, 41 insertions(+), 5 deletions(-) diff --git a/dev/DevWinUI.Controls/Controls/StepBar/StepBar.Property.cs b/dev/DevWinUI.Controls/Controls/StepBar/StepBar.Property.cs index cec1ea3d..217101a8 100644 --- a/dev/DevWinUI.Controls/Controls/StepBar/StepBar.Property.cs +++ b/dev/DevWinUI.Controls/Controls/StepBar/StepBar.Property.cs @@ -85,4 +85,22 @@ private static void OnHeaderDisplayModeChanged(DependencyObject d, DependencyPro ctl.UpdateHeaderDisplayMode(); } } + + public bool ShowStepIndex + { + get { return (bool)GetValue(ShowStepIndexProperty); } + set { SetValue(ShowStepIndexProperty, value); } + } + + public static readonly DependencyProperty ShowStepIndexProperty = + DependencyProperty.Register(nameof(ShowStepIndex), typeof(bool), typeof(StepBar), new PropertyMetadata(true, OnShowStepIndexChanged)); + + private static void OnShowStepIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var ctl = (StepBar)d; + if (ctl != null) + { + ctl.UpdateItems(); + } + } } diff --git a/dev/DevWinUI.Controls/Controls/StepBar/StepBar.cs b/dev/DevWinUI.Controls/Controls/StepBar/StepBar.cs index c5b8815d..84a7195e 100644 --- a/dev/DevWinUI.Controls/Controls/StepBar/StepBar.cs +++ b/dev/DevWinUI.Controls/Controls/StepBar/StepBar.cs @@ -194,6 +194,7 @@ private void UpdateItems() stepBarItem.Orientation = this.Orientation; stepBarItem.HeaderDisplayMode = this.HeaderDisplayMode; stepBarItem.ItemTemplate = ItemTemplate; + stepBarItem.ShowStepIndex = ShowStepIndex; } } diff --git a/dev/DevWinUI.Controls/Controls/StepBar/StepBarItem.cs b/dev/DevWinUI.Controls/Controls/StepBar/StepBarItem.cs index 5d2dbe55..3b2b6eae 100644 --- a/dev/DevWinUI.Controls/Controls/StepBar/StepBarItem.cs +++ b/dev/DevWinUI.Controls/Controls/StepBar/StepBarItem.cs @@ -7,6 +7,15 @@ public partial class StepBarItem : ContentControl private ContentPresenter contentPresenter; private Border border; private StackPanel panel; + internal bool ShowStepIndex + { + get { return (bool)GetValue(ShowStepIndexProperty); } + set { SetValue(ShowStepIndexProperty, value); } + } + + internal static readonly DependencyProperty ShowStepIndexProperty = + DependencyProperty.Register(nameof(ShowStepIndex), typeof(bool), typeof(StepBarItem), new PropertyMetadata(true)); + internal DataTemplate ItemTemplate { get { return (DataTemplate)GetValue(ItemTemplateProperty); } diff --git a/dev/DevWinUI.Controls/Themes/Generic.xaml b/dev/DevWinUI.Controls/Themes/Generic.xaml index 4e14b41e..94c5db33 100644 --- a/dev/DevWinUI.Controls/Themes/Generic.xaml +++ b/dev/DevWinUI.Controls/Themes/Generic.xaml @@ -5825,7 +5825,7 @@ Themes\Styles\Win2D\Watermark.xaml - + @@ -5913,7 +5913,7 @@ Themes\Styles\Win2D\Watermark.xaml - + @@ -7036,6 +7036,7 @@ Themes\Styles\Win2D\Watermark.xaml + + Text="{Binding Index, RelativeSource={RelativeSource Mode=TemplatedParent}}" + Visibility="{Binding ShowStepIndex, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}" /> + Text="{Binding Index, RelativeSource={RelativeSource Mode=TemplatedParent}}" + Visibility="{Binding ShowStepIndex, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}" /> + - +