本文整理汇总了C#中IXamlTypeConverterContext类的典型用法代码示例。如果您正苦于以下问题:C# IXamlTypeConverterContext类的具体用法?C# IXamlTypeConverterContext怎么用?C# IXamlTypeConverterContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IXamlTypeConverterContext类属于命名空间,在下文中一共展示了IXamlTypeConverterContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
return new MemberSelector
{
MemberName = (string)value,
};
}
示例2: ConvertTo
public object ConvertTo(
IXamlTypeConverterContext context,
CultureInfo culture,
object value,
Type destinationType)
{
throw new NotImplementedException();
}
示例3: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var colorString = (string)value;
var color = DecodeColor(colorString);
return new SolidColorBrush(color);
}
示例4: CanConvertFrom
public bool CanConvertFrom(IXamlTypeConverterContext context, Type sourceType)
{
if (sourceType == typeof(string))
{
return true;
}
return false;
}
示例5: ConvertTo
public object ConvertTo(IXamlTypeConverterContext context, CultureInfo culture, object value, Type destinationType)
{
if ((string) value == "Auto")
{
return new GridLength(0, GridUnitType.Auto);
}
return new GridLength(1, GridUnitType.Star);
}
示例6: CanConvertTo
public bool CanConvertTo(IXamlTypeConverterContext context, Type destinationType)
{
if (destinationType == typeof(string) || destinationType == typeof(int))
{
return true;
}
return false;
}
示例7: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
if (value is string)
{
return value;
}
return null;
}
示例8: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var s = value as string;
if (s != null)
{
return ConvertFromString(s);
}
return null;
}
示例9: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
string strValue = (string)value;
string[] pointStrs = strValue.Split(new[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var result = new List<Point>(pointStrs.Length);
foreach (var pointStr in pointStrs)
{
result.Add(Point.Parse(pointStr, culture));
}
return result;
}
示例10: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var valueStr = (string)value;
if (!valueStr.Contains(":"))
{
// shorthand seconds format (ie. "0.25")
var secs = double.Parse(valueStr);
return TimeSpan.FromSeconds(secs);
}
return TimeSpan.Parse(valueStr);
}
示例11: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var s = (string)value;
string typeName;
string propertyName;
Type type;
ParseProperty(s, out typeName, out propertyName);
if (typeName == null)
{
var styleType = context.TypeRepository.GetXamlType(typeof(Style));
var style = (Style)context.TopDownValueContext.GetLastInstance(styleType);
type = style.Selector.TargetType;
if (type == null)
{
throw new XamlParseException(
"Could not determine the target type. Please fully qualify the property name.");
}
}
else
{
type = context.TypeRepository.GetByQualifiedName(typeName)?.UnderlyingType;
if (type == null)
{
throw new XamlParseException($"Could not find type '{typeName}'.");
}
}
// Ensure the type's static ctor has been run.
RuntimeHelpers.RunClassConstructor(type.TypeHandle);
// First look for non-attached property on the type and then look for an attached property.
var property = PerspexPropertyRegistry.Instance.FindRegistered(type, s);
if (property == null)
{
property = PerspexPropertyRegistry.Instance.GetAttached(type)
.FirstOrDefault(x => x.Name == propertyName);
}
if (property == null)
{
throw new XamlParseException(
$"Could not find PerspexProperty '{type.Name}.{propertyName}'.");
}
return property;
}
示例12: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var uri = new Uri((string)value, UriKind.RelativeOrAbsolute);
var scheme = uri.IsAbsoluteUri ? uri.Scheme : "file";
switch (scheme)
{
case "file":
return new Bitmap((string)value);
default:
var assets = PerspexLocator.Current.GetService<IAssetLoader>();
return new Bitmap(assets.Open(uri));
}
}
示例13: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var str = value as string;
if (str != null)
{
if (string.Equals(str, "Auto"))
{
return new GridLength(0, GridUnitType.Auto);
}
}
return new GridLength(1, GridUnitType.Star);
}
示例14: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var s = (string)value;
var lastDot = s.LastIndexOf('.');
if (lastDot == -1)
{
throw new NotSupportedException("PerspexProperties must currently be fully qualified.");
}
var typeName = s.Substring(0, lastDot);
var propertyName = s.Substring(lastDot + 1);
var type = context.TypeRepository.GetByQualifiedName(typeName)?.UnderlyingType;
var styleType = context.TypeRepository.GetXamlType(typeof(Style));
// ATTN: SuperJMN
//var style = ((XamlTypeConverterContext)context).TopDownValueContext.GetLastInstance(styleType);
if (type == null)
{
throw new XamlParseException($"Could not find type '{typeName}'.");
}
// First look for non-attached property on the type and then look for an attached property.
var property = PerspexObject.GetRegisteredProperties(type)
.FirstOrDefault(x => x.Name == propertyName);
if (property == null)
{
property = PerspexObject.GetAttachedProperties(type)
.FirstOrDefault(x => x.Name == propertyName);
}
if (property == null)
{
throw new XamlParseException(
$"Could not find PerspexProperty '{typeName}'.{propertyName}.");
}
return property;
}
示例15: ConvertFrom
public object ConvertFrom(IXamlTypeConverterContext context, CultureInfo culture, object value)
{
var str = value as string;
if (value is int)
{
return Convert.ToInt32(value, CultureInfo.InvariantCulture);
}
if (value is long)
{
return Convert.ToInt32(value, CultureInfo.InvariantCulture);
}
else if (str != null)
{
long v;
if (long.TryParse(str, NumberStyles.Integer, CultureInfo.InvariantCulture, out v))
{
return (int)v;
}
}
throw new InvalidOperationException();
}