Skip to content

Commit a9cf691

Browse files
committed
Bump version
1 parent fc346b5 commit a9cf691

24 files changed

+1304
-85
lines changed

Directory.Build.props

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</PropertyGroup>
77

88
<PropertyGroup>
9-
<Version>4.0.0-rc.3</Version>
9+
<Version>4.0.0</Version>
1010
<AssemblyVersion>4.0.0</AssemblyVersion>
1111
</PropertyGroup>
1212

@@ -17,7 +17,7 @@
1717
<CommonTags>lepoco;toolkit;wpf;fluent;navigation;controls;design;icons;system;accent;theme;winui</CommonTags>
1818
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1919
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
20-
<Copyright>Copyright (C) 2021-2024 Leszek Pomianowski and WPF UI Contributors</Copyright>
20+
<Copyright>Copyright (C) 2021-2025 Leszek Pomianowski and WPF UI Contributors</Copyright>
2121
<PackageProjectUrl>https://github.com/lepoco/wpfui</PackageProjectUrl>
2222
<PackageReleaseNotes>https://github.com/lepoco/wpfui/releases</PackageReleaseNotes>
2323
<PackageIcon>Icon.png</PackageIcon>

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021-2024 Leszek Pomianowski and WPF UI Contributors. https://lepo.co/
3+
Copyright (c) 2021-2025 Leszek Pomianowski and WPF UI Contributors. https://lepo.co/
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

LICENSE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021-2024 Leszek Pomianowski and WPF UI Contributors. https://lepo.co/
3+
Copyright (c) 2021-2025 Leszek Pomianowski and WPF UI Contributors. https://lepo.co/
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

docs/docfx.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
"_appName": "WPF UI",
5858
"_appFaviconPath": "images/favicon.ico",
5959
"_appLogoPath": "images/wpfui.png",
60-
"_appFooter": "<span>Made with <a href=\"https://dotnet.github.io/docfx\" rel=\"noreferrer\">docfx</a>, <a href=\"https://chat.openai.com/\" rel=\"noreferrer\">ChatGPT</a> and <a href=\"https://www.deepl.com/\" rel=\"noreferrer\">DeepL</a> | Copyright © 2024 <a href=\"https://lepo.co/\">lepo.co</a></span>"
60+
"_appFooter": "<span>Made with <a href=\"https://dotnet.github.io/docfx\" rel=\"noreferrer\">docfx</a>, <a href=\"https://chat.openai.com/\" rel=\"noreferrer\">ChatGPT</a> and <a href=\"https://www.deepl.com/\" rel=\"noreferrer\">DeepL</a> | Copyright © 2025 <a href=\"https://lepo.co/\">lepo.co</a></span>"
6161
},
6262
"dest": "_site",
6363
"template": [

docs/templates/wpfui/layout/_master.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134

135135
<footer class="border-top">
136136
<div class="container-xxl">
137-
<div class="row"><div class="col-12">WPF UI<a target="_blank" rel="noopener nofollow noreferrer" href="https://github.com/lepoco/wpfui"><code> https://github.com/lepoco/wpfui </code></a></div><div class="col-12">Build with<a target="_blank" rel="noopener nofollow noreferrer" href="https://dotnet.github.io/docfx/"><code> docfx </code></a>using <a target="_blank" rel="noopener nofollow noreferrer" href="https://www.deepl.com/en/translator"><code> deepl</code></a><a target="_blank" rel="noopener nofollow noreferrer" href="https://highlightjs.org/"><code> highlight.js</code></a><a target="_blank" rel="noopener nofollow noreferrer" href="https://getbootstrap.com/"><code> bootstrap</code></a><a target="_blank" rel="noopener nofollow noreferrer" href="https://github.com/microsoft/fluentui-system-icons"><code> fluent-system-icons</code></a></div><div class="col-12">Copyright © 2024 lepo.co | Leszek Pomianowski</div></div>
137+
<div class="row"><div class="col-12">WPF UI<a target="_blank" rel="noopener nofollow noreferrer" href="https://github.com/lepoco/wpfui"><code> https://github.com/lepoco/wpfui </code></a></div><div class="col-12">Build with<a target="_blank" rel="noopener nofollow noreferrer" href="https://dotnet.github.io/docfx/"><code> docfx </code></a>using <a target="_blank" rel="noopener nofollow noreferrer" href="https://www.deepl.com/en/translator"><code> deepl</code></a><a target="_blank" rel="noopener nofollow noreferrer" href="https://highlightjs.org/"><code> highlight.js</code></a><a target="_blank" rel="noopener nofollow noreferrer" href="https://getbootstrap.com/"><code> bootstrap</code></a><a target="_blank" rel="noopener nofollow noreferrer" href="https://github.com/microsoft/fluentui-system-icons"><code> fluent-system-icons</code></a></div><div class="col-12">Copyright © 2025 lepo.co | Leszek Pomianowski and Open-Source Contributors</div></div>
138138
</div>
139139
</footer>
140140
</body>

src/Wpf.Ui.Extension/license.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021-2024 Leszek Pomianowski and WPF UI Contributors. https://lepo.co/
3+
Copyright (c) 2021-2025 Leszek Pomianowski and WPF UI Contributors. https://lepo.co/
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

src/Wpf.Ui.Gallery.Package/Package.appxmanifest

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<Identity
1010
Name="RapidDev.WPFUI"
1111
Publisher="CN=F7CE81D0-29F4-45AA-935D-9F9E73C50210"
12-
Version="3.0.3.0" />
12+
Version="4.0.0.0" />
1313

1414
<Properties>
1515
<DisplayName>WPF UI</DisplayName>

src/Wpf.Ui.Gallery/Effects/Snowflake.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,4 @@ public TranslateTransform? Transform
110110
get => _transform;
111111
set => _transform = value;
112112
}
113-
}
113+
}

src/Wpf.Ui.Gallery/Effects/SnowflakeEffect.cs

+16-13
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ namespace Wpf.Ui.Gallery.Effects;
1313
/// </summary>
1414
internal class SnowflakeEffect
1515
{
16-
private readonly Canvas _canvas; // Canvas for displaying snowflakes
17-
private readonly Random _random = new(); // Random number generator
18-
private readonly List<SnowFlake> _snowFlakes = []; // Stores all snowflake objects
19-
private readonly int _flakeCount; // Number of snowflakes
20-
private double mX = -100; // Mouse X-coordinate, default value -100
21-
private double mY = -100; // Mouse Y-coordinate, default value -100
16+
private readonly Canvas _canvas; // Canvas for displaying snowflakes
17+
private readonly Random _random = new(); // Random number generator
18+
private readonly List<SnowFlake> _snowFlakes = []; // Stores all snowflake objects
19+
private readonly int _flakeCount; // Number of snowflakes
20+
private double mX = -100; // Mouse X-coordinate, default value -100
21+
private double mY = -100; // Mouse Y-coordinate, default value -100
2222

2323
/// <summary>
2424
/// Initializes a new instance of the <see cref="SnowflakeEffect"/> class.
@@ -79,17 +79,17 @@ private void InitSnowFlakes()
7979
/// </summary>
8080
private void CreateSnowFlake()
8181
{
82-
double size = (_random.NextDouble() * 3) + 2; // Snowflake size
83-
double speed = (_random.NextDouble() * 1) + 0.5; // Falling speed
84-
double opacity = (_random.NextDouble() * 0.5) + 0.3; // Opacity
85-
double x = _random.NextDouble() * _canvas.ActualWidth; // Initial X position
82+
double size = (_random.NextDouble() * 3) + 2; // Snowflake size
83+
double speed = (_random.NextDouble() * 1) + 0.5; // Falling speed
84+
double opacity = (_random.NextDouble() * 0.5) + 0.3; // Opacity
85+
double x = _random.NextDouble() * _canvas.ActualWidth; // Initial X position
8686
double y = _random.NextDouble() * _canvas.ActualHeight; // Initial Y position
8787

8888
Ellipse flakeShape = new()
8989
{
9090
Width = size,
9191
Height = size,
92-
Fill = new SolidColorBrush(Color.FromArgb((byte)(opacity * 255), 255, 255, 255))
92+
Fill = new SolidColorBrush(Color.FromArgb((byte)(opacity * 255), 255, 255, 255)),
9393
};
9494

9595
TranslateTransform transform = new(x, y);
@@ -110,7 +110,7 @@ private void CreateSnowFlake()
110110
StepSize = _random.NextDouble() / 30 * 1,
111111
Step = 0,
112112
Angle = 180,
113-
Transform = transform
113+
Transform = transform,
114114
};
115115

116116
_snowFlakes.Add(flake);
@@ -195,7 +195,10 @@ private void ResetFlake(SnowFlake flake)
195195

196196
flake.Shape.SetCurrentValue(FrameworkElement.WidthProperty, flake.Size);
197197
flake.Shape.SetCurrentValue(FrameworkElement.HeightProperty, flake.Size);
198-
flake.Shape.SetCurrentValue(Shape.FillProperty, new SolidColorBrush(Color.FromArgb((byte)(flake.Opacity * 255), 255, 255, 255)));
198+
flake.Shape.SetCurrentValue(
199+
Shape.FillProperty,
200+
new SolidColorBrush(Color.FromArgb((byte)(flake.Opacity * 255), 255, 255, 255))
201+
);
199202
}
200203

201204
/// <summary>

src/Wpf.Ui.Gallery/Views/Pages/BasicInput/BasicInputPage.xaml.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public BasicInputPage(BasicInputViewModel viewModel, INavigationService navigati
3030
private void HandleLoaded(object sender, RoutedEventArgs e)
3131
{
3232
INavigationView? navigationControl = _navigationService.GetNavigationControl();
33-
if (navigationControl?.BreadcrumbBar != null &&
34-
navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed)
33+
if (
34+
navigationControl?.BreadcrumbBar != null
35+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed
36+
)
3537
{
3638
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Collapsed);
3739
}
@@ -45,8 +47,7 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
4547
MainTitle.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, newTitle);
4648
}
4749

48-
if (selectedItem.Icon is SymbolIcon selectedIcon &&
49-
MainSymbolIcon.Symbol != selectedIcon.Symbol)
50+
if (selectedItem.Icon is SymbolIcon selectedIcon && MainSymbolIcon.Symbol != selectedIcon.Symbol)
5051
{
5152
MainSymbolIcon.SetCurrentValue(SymbolIcon.SymbolProperty, selectedIcon.Symbol);
5253
}
@@ -59,8 +60,10 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
5960
private void HandleUnloaded(object sender, RoutedEventArgs e)
6061
{
6162
INavigationView? navigationControl = _navigationService.GetNavigationControl();
62-
if (navigationControl?.BreadcrumbBar != null &&
63-
navigationControl.BreadcrumbBar.Visibility != Visibility.Visible)
63+
if (
64+
navigationControl?.BreadcrumbBar != null
65+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Visible
66+
)
6467
{
6568
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Visible);
6669
}

src/Wpf.Ui.Gallery/Views/Pages/Collections/CollectionsPage.xaml.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public CollectionsPage(CollectionsViewModel viewModel, INavigationService naviga
3030
private void HandleLoaded(object sender, RoutedEventArgs e)
3131
{
3232
INavigationView? navigationControl = _navigationService.GetNavigationControl();
33-
if (navigationControl?.BreadcrumbBar != null &&
34-
navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed)
33+
if (
34+
navigationControl?.BreadcrumbBar != null
35+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed
36+
)
3537
{
3638
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Collapsed);
3739
}
@@ -45,8 +47,7 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
4547
MainTitle.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, newTitle);
4648
}
4749

48-
if (selectedItem.Icon is SymbolIcon selectedIcon &&
49-
MainSymbolIcon.Symbol != selectedIcon.Symbol)
50+
if (selectedItem.Icon is SymbolIcon selectedIcon && MainSymbolIcon.Symbol != selectedIcon.Symbol)
5051
{
5152
MainSymbolIcon.SetCurrentValue(SymbolIcon.SymbolProperty, selectedIcon.Symbol);
5253
}
@@ -59,8 +60,10 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
5960
private void HandleUnloaded(object sender, RoutedEventArgs e)
6061
{
6162
INavigationView? navigationControl = _navigationService.GetNavigationControl();
62-
if (navigationControl?.BreadcrumbBar != null &&
63-
navigationControl.BreadcrumbBar.Visibility != Visibility.Visible)
63+
if (
64+
navigationControl?.BreadcrumbBar != null
65+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Visible
66+
)
6467
{
6568
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Visible);
6669
}

src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DateAndTimePage.xaml.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public DateAndTimePage(DateAndTimeViewModel viewModel, INavigationService naviga
3030
private void HandleLoaded(object sender, RoutedEventArgs e)
3131
{
3232
INavigationView? navigationControl = _navigationService.GetNavigationControl();
33-
if (navigationControl?.BreadcrumbBar != null &&
34-
navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed)
33+
if (
34+
navigationControl?.BreadcrumbBar != null
35+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed
36+
)
3537
{
3638
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Collapsed);
3739
}
@@ -45,8 +47,7 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
4547
MainTitle.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, newTitle);
4648
}
4749

48-
if (selectedItem.Icon is SymbolIcon selectedIcon &&
49-
MainSymbolIcon.Symbol != selectedIcon.Symbol)
50+
if (selectedItem.Icon is SymbolIcon selectedIcon && MainSymbolIcon.Symbol != selectedIcon.Symbol)
5051
{
5152
MainSymbolIcon.SetCurrentValue(SymbolIcon.SymbolProperty, selectedIcon.Symbol);
5253
}
@@ -59,8 +60,10 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
5960
private void HandleUnloaded(object sender, RoutedEventArgs e)
6061
{
6162
INavigationView? navigationControl = _navigationService.GetNavigationControl();
62-
if (navigationControl?.BreadcrumbBar != null &&
63-
navigationControl.BreadcrumbBar.Visibility != Visibility.Visible)
63+
if (
64+
navigationControl?.BreadcrumbBar != null
65+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Visible
66+
)
6467
{
6568
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Visible);
6669
}

src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/DialogsAndFlyoutsPage.xaml.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public DialogsAndFlyoutsPage(DialogsAndFlyoutsViewModel viewModel, INavigationSe
3030
private void HandleLoaded(object sender, RoutedEventArgs e)
3131
{
3232
INavigationView? navigationControl = _navigationService.GetNavigationControl();
33-
if (navigationControl?.BreadcrumbBar != null &&
34-
navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed)
33+
if (
34+
navigationControl?.BreadcrumbBar != null
35+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed
36+
)
3537
{
3638
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Collapsed);
3739
}
@@ -45,8 +47,7 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
4547
MainTitle.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, newTitle);
4648
}
4749

48-
if (selectedItem.Icon is SymbolIcon selectedIcon &&
49-
MainSymbolIcon.Symbol != selectedIcon.Symbol)
50+
if (selectedItem.Icon is SymbolIcon selectedIcon && MainSymbolIcon.Symbol != selectedIcon.Symbol)
5051
{
5152
MainSymbolIcon.SetCurrentValue(SymbolIcon.SymbolProperty, selectedIcon.Symbol);
5253
}
@@ -59,8 +60,10 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
5960
private void HandleUnloaded(object sender, RoutedEventArgs e)
6061
{
6162
INavigationView? navigationControl = _navigationService.GetNavigationControl();
62-
if (navigationControl?.BreadcrumbBar != null &&
63-
navigationControl.BreadcrumbBar.Visibility != Visibility.Visible)
63+
if (
64+
navigationControl?.BreadcrumbBar != null
65+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Visible
66+
)
6467
{
6568
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Visible);
6669
}

src/Wpf.Ui.Gallery/Views/Pages/Layout/LayoutPage.xaml.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public LayoutPage(LayoutViewModel viewModel, INavigationService navigationServic
3030
private void HandleLoaded(object sender, RoutedEventArgs e)
3131
{
3232
INavigationView? navigationControl = _navigationService.GetNavigationControl();
33-
if (navigationControl?.BreadcrumbBar != null &&
34-
navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed)
33+
if (
34+
navigationControl?.BreadcrumbBar != null
35+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed
36+
)
3537
{
3638
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Collapsed);
3739
}
@@ -45,8 +47,7 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
4547
MainTitle.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, newTitle);
4648
}
4749

48-
if (selectedItem.Icon is SymbolIcon selectedIcon &&
49-
MainSymbolIcon.Symbol != selectedIcon.Symbol)
50+
if (selectedItem.Icon is SymbolIcon selectedIcon && MainSymbolIcon.Symbol != selectedIcon.Symbol)
5051
{
5152
MainSymbolIcon.SetCurrentValue(SymbolIcon.SymbolProperty, selectedIcon.Symbol);
5253
}
@@ -59,8 +60,10 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
5960
private void HandleUnloaded(object sender, RoutedEventArgs e)
6061
{
6162
INavigationView? navigationControl = _navigationService.GetNavigationControl();
62-
if (navigationControl?.BreadcrumbBar != null &&
63-
navigationControl.BreadcrumbBar.Visibility != Visibility.Visible)
63+
if (
64+
navigationControl?.BreadcrumbBar != null
65+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Visible
66+
)
6467
{
6568
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Visible);
6669
}

src/Wpf.Ui.Gallery/Views/Pages/Media/MediaPage.xaml.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public MediaPage(MediaViewModel viewModel, INavigationService navigationService)
3030
private void HandleLoaded(object sender, RoutedEventArgs e)
3131
{
3232
INavigationView? navigationControl = _navigationService.GetNavigationControl();
33-
if (navigationControl?.BreadcrumbBar != null &&
34-
navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed)
33+
if (
34+
navigationControl?.BreadcrumbBar != null
35+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Collapsed
36+
)
3537
{
3638
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Collapsed);
3739
}
@@ -45,8 +47,7 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
4547
MainTitle.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, newTitle);
4648
}
4749

48-
if (selectedItem.Icon is SymbolIcon selectedIcon &&
49-
MainSymbolIcon.Symbol != selectedIcon.Symbol)
50+
if (selectedItem.Icon is SymbolIcon selectedIcon && MainSymbolIcon.Symbol != selectedIcon.Symbol)
5051
{
5152
MainSymbolIcon.SetCurrentValue(SymbolIcon.SymbolProperty, selectedIcon.Symbol);
5253
}
@@ -59,8 +60,10 @@ private void HandleLoaded(object sender, RoutedEventArgs e)
5960
private void HandleUnloaded(object sender, RoutedEventArgs e)
6061
{
6162
INavigationView? navigationControl = _navigationService.GetNavigationControl();
62-
if (navigationControl?.BreadcrumbBar != null &&
63-
navigationControl.BreadcrumbBar.Visibility != Visibility.Visible)
63+
if (
64+
navigationControl?.BreadcrumbBar != null
65+
&& navigationControl.BreadcrumbBar.Visibility != Visibility.Visible
66+
)
6467
{
6568
navigationControl.BreadcrumbBar.SetCurrentValue(VisibilityProperty, Visibility.Visible);
6669
}

0 commit comments

Comments
 (0)