Exemplo n.º 1
0
        /// <summary>
        /// 获得内容节点
        /// </summary>
        /// <returns></returns>
        private static IList <HtmlNode> GetContentNodes(HtmlNode objNode, bool ignoreBlank)
        {
            var             childNodes = objNode.TrimChildNodes(ignoreBlank);
            List <HtmlNode> nodes      = new List <HtmlNode>();

            foreach (var child in childNodes)
            {
                if (PropertiesLoader.IsPropertyElement(child))
                {
                    continue;
                }
                nodes.Add(child);
            }
            return(nodes);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 该方法可以识别attrValue的类型(动态标记或实际值),并将其值设置到对象d的dp属性上
        /// </summary>
        /// <param name="d"></param>
        /// <param name="dp"></param>
        /// <param name="propertyInfo">属性信息,由于有可能需要外界指定属性信息,所以我们公开这个设置,例如:XamlStyle->Setter对象,这个对象的Value的属性值由TargetType决定,而不是Setter对象的Value类型决定</param>
        /// <param name="attrValue"></param>
        internal static void SetValue(DependencyObject d, DependencyProperty dp, PropertyInfo propertyInfo, string attrValue)
        {
            var    e     = PropertiesLoader.CreateMarkupExtension(attrValue);
            object value = null;

            if (e != null)
            {
                value = e.ProvideValue(d, dp);
            }
            else
            {
                value = GetValue(attrValue, propertyInfo);
            }
            d.SetValue(dp, value);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 加载属性
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="objNode"></param>
 /// <param name="context"></param>
 protected virtual void LoadProperties(object obj, HtmlNode objNode)
 {
     PropertiesLoader.Load(obj, objNode);
 }