更新整理

This commit is contained in:
GG Z
2025-04-24 20:56:44 +08:00
parent 155cef46f8
commit 5b6d67b571
813 changed files with 14437 additions and 12362 deletions

View File

@@ -0,0 +1,36 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
namespace WPFluent.Gallery.Helpers;
internal sealed class EnumToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter is not string enumString)
{
throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName");
}
if (!Enum.IsDefined(typeof(WPFluent.Appearance.ApplicationTheme), value))
{
throw new ArgumentException("ExceptionEnumToBooleanConverterValueMustBeAnEnum");
}
var enumValue = Enum.Parse(typeof(WPFluent.Appearance.ApplicationTheme), enumString);
return enumValue.Equals(value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter is not string enumString)
{
throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName");
}
return Enum.Parse(typeof(WPFluent.Appearance.ApplicationTheme), enumString);
}
}

View File

@@ -0,0 +1,26 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using System.Reflection;
namespace WPFluent.Gallery.Helpers;
internal sealed class NameToPageTypeConverter
{
private static readonly Type[] PageTypes = Assembly
.GetExecutingAssembly()
.GetTypes()
.Where(t => t.Namespace?.StartsWith("WPFluent.Gallery.Views.Pages") ?? false)
.ToArray();
public static Type? Convert(string pageName)
{
pageName = pageName.Trim().ToLower() + "page";
return PageTypes.FirstOrDefault(singlePageType =>
singlePageType.Name.Equals(pageName, StringComparison.CurrentCultureIgnoreCase)
);
}
}

View File

@@ -0,0 +1,19 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
namespace WPFluent.Gallery.Helpers;
internal sealed class NullToVisibilityConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
return value is null ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

View File

@@ -0,0 +1,33 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using WPFluent.Controls;
namespace WPFluent.Gallery.Helpers;
internal sealed class PaneDisplayModeToIndexConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
return value switch
{
NavigationViewPaneDisplayMode.LeftFluent => 1,
NavigationViewPaneDisplayMode.Top => 2,
NavigationViewPaneDisplayMode.Bottom => 3,
_ => 0,
};
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
return value switch
{
1 => NavigationViewPaneDisplayMode.LeftFluent,
2 => NavigationViewPaneDisplayMode.Top,
3 => NavigationViewPaneDisplayMode.Bottom,
_ => NavigationViewPaneDisplayMode.Left,
};
}
}

View File

@@ -0,0 +1,43 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using WPFluent.Appearance;
namespace WPFluent.Gallery.Helpers;
internal sealed class ThemeToIndexConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is ApplicationTheme.Dark)
{
return 1;
}
if (value is ApplicationTheme.HighContrast)
{
return 2;
}
return 0;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is 1)
{
return ApplicationTheme.Dark;
}
if (value is 2)
{
return ApplicationTheme.HighContrast;
}
return ApplicationTheme.Light;
}
}