WinFormsPopupAlerts/CornerRadiusConverter.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
namespace WinFormsPopupAlerts
{
/// <summary>
/// Provides a type converter to convert CornerRadiusConverter to and from string.
/// </summary>
internal class CornerRadiusConverter : ExpandableObjectConverter
{
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(string))
return true;
return base.CanConvertTo(context, destinationType);
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(string))
return true;
return base.CanConvertFrom(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if (value == null)
return new CornerRadius();
if (value is string)
{
string serializedData = (string)value;
if (serializedData.Length == 0)
return new CornerRadius();
string[] parts = serializedData.Split(culture.TextInfo.ListSeparator[0]);
int[] radiuses;
if (parts.Length == 1){
int radius = int.Parse(parts[0]);
radiuses = new int[] { radius, radius, radius, radius };
}
else if (parts.Length == 4)
{
radiuses = Array.ConvertAll(parts, delegate(string s)
{
return int.Parse(s);
});
}
else
{
throw new ArgumentException("Invalid CornerRadius object", "value");
}
return new CornerRadius(radiuses[0], radiuses[1], radiuses[2], radiuses[3]);
}
return base.ConvertFrom(context, culture, value);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
if (value != null && !(value is CornerRadius))
后面还有 21 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。