DependencyProperty.GetValue возвращает неправильное значение
Здравствуйте, это мой код:
public class Class1 : FrameworkElement
{
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
var testOk = this.ActualWidth;
var testNotOk = this.GetValue(ActualWidthProperty);
}
}
TestNotOk всегда равен нулю, TestOk имеет правильное значение. Почему это происходит?
2 ответа
Заглянуть в FrameworkElement
Исходный код показывает это:
public double ActualWidth
{
get { return this.RenderSize.Width; }
}
После первого OnRender()
позвонить ActualWidth
свойство возвращает то же значение, что и GetValue(ActualWidthProperty)
По крайней мере, в моем тестовом приложении.
Обходной путь может быть:
typeof(Class1).GetProperty(ActualWidthProperty.Name).GetValue(this);