packages/MaterialDesignThemes.2.5.1/src/net45/Converters/ClockItemIsCheckedConverter.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Globalization;
using System.Windows.Data;
namespace MaterialDesignThemes.Wpf.Converters
{
internal class ClockItemIsCheckedConverter : IValueConverter
{
private readonly Func<DateTime> _currentTimeGetter;
private readonly ClockDisplayMode _displayMode;
private readonly bool _is24Hours;
public ClockItemIsCheckedConverter(Func<DateTime> currentTimeGetter, ClockDisplayMode displayMode, bool is24Hours)
{
_currentTimeGetter = currentTimeGetter ?? throw new ArgumentNullException(nameof(currentTimeGetter));
_displayMode = displayMode;
_is24Hours = is24Hours;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var dateTime = (DateTime)value;
var i = (int)parameter;
int converted = 0;
if (_displayMode == ClockDisplayMode.Hours)
converted = MassageHour(dateTime.Hour, _is24Hours);
else if (_displayMode == ClockDisplayMode.Minutes)
converted = MassageMinuteSecond(dateTime.Minute);
else
converted = MassageMinuteSecond(dateTime.Second);
return converted == i;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((bool)value != true) return Binding.DoNothing;
var currentTime = _currentTimeGetter();
return new DateTime(
currentTime.Year, currentTime.Month, currentTime.Day,
(_displayMode == ClockDisplayMode.Hours) ? ReverseMassageHour((int)parameter, currentTime, _is24Hours) : currentTime.Hour,
(_displayMode == ClockDisplayMode.Minutes) ? ReverseMassageMinuteSecond((int)parameter) : currentTime.Minute,
(_displayMode == ClockDisplayMode.Seconds) ? ReverseMassageMinuteSecond((int)parameter) : currentTime.Second);
}
private static int MassageHour(int val, bool is24Hours)
{
if (is24Hours)
{
return val == 0 ? 24 : val;
}
if (val == 0) return 12;
if (val > 12) return val - 12;
return val;
}
private static int MassageMinuteSecond(int val)
后面还有 22 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。