Ошибка приведения для UIElement во время выполнения - PullRequest
2 голосов
/ 16 июля 2010

Когда я это делаю, я получаю ошибку времени выполнения.

У меня есть этот класс:

public abstract class AnnObject : DependencyObject

и когда я делаю это, он прекрасно компилируется, но выдает ошибку времени выполнения ...

AnnObject aa;
var b = (DependencyObject)aa;
var c = (UIElement)b;

Ошибка, которую я получаю, не может привести AnnObject к UIElement.

Может кто-нибудь кратко объяснить это поведение?

Ответы [ 2 ]

4 голосов
/ 16 июля 2010

Класс hiearchy в Silverlight для компонентов пользовательского интерфейса: -

DependencyObject
  UIElement
    FrameworkElement
      Control

Таким образом, как указывает Хайнц, вам необходимо получить из UIElement ордера, чтобы иметь возможность привести к UIElement и DependencyObject. Лично я не вижу, чтобы происходящее из DependencyObject было настолько полезным. Обычно я начинаю с FrameworkElement, Control или даже выше.

2 голосов
/ 16 июля 2010

Вы получаете только от DependencyObject, а не от UIElement.

...