本文整理汇总了C#中ICSharpCode.WpfDesign.XamlDom.XamlObject.GetNameForMarkupExtension方法的典型用法代码示例。如果您正苦于以下问题:C# XamlObject.GetNameForMarkupExtension方法的具体用法?C# XamlObject.GetNameForMarkupExtension怎么用?C# XamlObject.GetNameForMarkupExtension使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICSharpCode.WpfDesign.XamlDom.XamlObject
的用法示例。
在下文中一共展示了XamlObject.GetNameForMarkupExtension方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Print
/// <summary>
/// Generates XAML markup extension code for the object.
/// </summary>
public static string Print(XamlObject obj)
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append(obj.GetNameForMarkupExtension());
bool first = true;
foreach (var property in obj.Properties) {
if (!property.IsSet) continue;
if (first)
sb.Append(" ");
else
sb.Append(", ");
first = false;
sb.Append(property.GetNameForMarkupExtension());
sb.Append("=");
var value = property.PropertyValue;
if (value is XamlTextValue) {
sb.Append((value as XamlTextValue).Text);
} else if (value is XamlObject) {
sb.Append(Print(value as XamlObject));
}
}
sb.Append("}");
return sb.ToString();
}
示例2: Print
/// <summary>
/// Generates XAML markup extension code for the object.
/// </summary>
public static string Print(XamlObject obj)
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append(obj.GetNameForMarkupExtension());
bool first = true;
var properties = obj.Properties.ToList();
if (obj.ElementType == typeof(Binding)){
var p=obj.Properties.FirstOrDefault(x=>x.PropertyName=="Path");
if (p!=null && p.IsSet) {
sb.Append(" ");
AppendPropertyValue(sb, p.PropertyValue, false);
properties.Remove(p);
first = false;
}
}
else if (obj.ElementType == typeof(Reference)){
var p=obj.Properties.FirstOrDefault(x=>x.PropertyName=="Name");
if (p!=null && p.IsSet) {
sb.Append(" ");
AppendPropertyValue(sb, p.PropertyValue, false);
properties.Remove(p);
first = false;
}
}
else if (obj.ElementType == typeof(StaticResourceExtension)){
var p=obj.Properties.FirstOrDefault(x=>x.PropertyName=="ResourceKey");
if (p!=null && p.IsSet) {
sb.Append(" ");
AppendPropertyValue(sb, p.PropertyValue, false);
properties.Remove(p);
first = false;
}
}
foreach (var property in properties) {
if (!property.IsSet) continue;
if (first)
sb.Append(" ");
else
sb.Append(", ");
first = false;
sb.Append(property.GetNameForMarkupExtension());
sb.Append("=");
AppendPropertyValue(sb, property.PropertyValue, property.ReturnType == typeof(string));
}
sb.Append("}");
return sb.ToString();
}
示例3: Print
/// <summary>
/// Generates XAML markup extension code for the object.
/// </summary>
public static string Print(XamlObject obj)
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
sb.Append(obj.GetNameForMarkupExtension());
bool first = true;
foreach (var property in obj.Properties) {
if (!property.IsSet) continue;
if (first)
sb.Append(" ");
else
sb.Append(", ");
first = false;
sb.Append(property.GetNameForMarkupExtension());
sb.Append("=");
var value = property.PropertyValue;
var textValue = value as XamlTextValue;
if (textValue != null) {
string text = textValue.Text;
bool containsSpace = text.Contains(' ');
if(containsSpace) {
sb.Append('\'');
}
sb.Append(text.Replace("\\", "\\\\"));
if(containsSpace) {
sb.Append('\'');
}
} else if (value is XamlObject) {
sb.Append(Print(value as XamlObject));
}
}
sb.Append("}");
return sb.ToString();
}