更新整理
This commit is contained in:
36
WPFluent.Gallery/Helpers/EnumToBooleanConverter.cs
Normal file
36
WPFluent.Gallery/Helpers/EnumToBooleanConverter.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
26
WPFluent.Gallery/Helpers/NameToPageTypeConverter.cs
Normal file
26
WPFluent.Gallery/Helpers/NameToPageTypeConverter.cs
Normal 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)
|
||||
);
|
||||
}
|
||||
}
|
||||
19
WPFluent.Gallery/Helpers/NullToVisibilityConverter.cs
Normal file
19
WPFluent.Gallery/Helpers/NullToVisibilityConverter.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
33
WPFluent.Gallery/Helpers/PaneDisplayModeToIndexConverter.cs
Normal file
33
WPFluent.Gallery/Helpers/PaneDisplayModeToIndexConverter.cs
Normal 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,
|
||||
};
|
||||
}
|
||||
}
|
||||
43
WPFluent.Gallery/Helpers/ThemeToIndexConverter.cs
Normal file
43
WPFluent.Gallery/Helpers/ThemeToIndexConverter.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user