【问题标题】:Getting the attached property "Canvas.Left"获取附加属性“Canvas.Left”
【发布时间】:2012-07-18 07:05:05
【问题描述】:

我有以下代码:

this.Object.GetType().GetProperty(this.PropertyName).GetValue(this.Object, null);

PropertyName 是一个字符串,包含我要获取的属性的名称。这适用于“普通”属性,但我无法获得“Canvas.LeftProperty”或“Canvas.TopProperty”。

谁能帮帮我?

谢谢, 克里斯

【问题讨论】:

    标签: c# attached-properties getproperty


    【解决方案1】:

    我认为这是因为 Canvas.Left 是附加属性,要检索它们,请尝试以下操作:

    private DependencyProperty GetAttachedProperty(DependencyObject obj, string propertyName, Type ownerType)
    {
    
        foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(obj,
            new Attribute[] { new PropertyFilterAttribute(PropertyFilterOptions.All) }))
        {
            DependencyPropertyDescriptor dpd =
                DependencyPropertyDescriptor.FromProperty(pd);
    
            if (dpd != null && dpd.IsAttached)
            {
                if (string.Compare(dpd.DependencyProperty.Name, propertyName, StringComparison.CurrentCultureIgnoreCase) == 0 && dpd.DependencyProperty.OwnerType == ownerType)
                {
                    return dpd.DependencyProperty;
                }
            }
        }
    
        return null;
    }
    

    Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      相关资源
      最近更新 更多