2011-11-09 2 views
0

Я новичок в WPF, и я получаю ошибку каждый раз я запускаю мой кодНе удается получить сетки панели в Перевести Transform XProperty

DoubleAnimation da = new DoubleAnimation(); 
TranslateTransform tt = (OPMenuScreen.RenderTransform as TransformGroup).Children[0] as TranslateTransform; 

da.By = -250; 
tt.BeginAnimation(TranslateTransform.XProperty, da); 

Почему я не могу получить OPMenuScreen перейти к -250 Xproperty для TranslateTransform?

+0

Какая у вас ошибка? –

+0

@Ben Robinson: Я получаю эту ошибку - ссылка на объект не установлена ​​в экземпляр объекта - на строке TranslateTransform tt – Corbee

+0

Как показывает @BenRobinson, это, скорее всего, потому, что 'OPMenuScreen.RenderTransform' не является экземпляром TransformGroup , Когда вы проходите через код, какова ценность этого свойства? –

ответ

0

Вслед за комментариями ...

Я не уверен, что Children свойство равно нулю в вашем примере - я думаю, что это более вероятно, что либо ваш RenderTransform является недействительным или не является экземпляром TransformGroup. В любом случае, вы должны просто должны убедиться, что у вас есть следующие указания в вашем XAML:

Примечание: Я понятия не имею, какой тип OPMenuScreen, поэтому я буду использовать Control для примера

<Control ...> 
    <Control.RenderTransform> 
     <TransformGroup> 
      <TranslateTransform /> 
     </TransformGroup> 
    </Control.RenderTransform> 
</Control> 
+0

Ваше право! Я не думал, что добавление этих кодов в XAML не требуется. Благодаря! – Corbee

1

OK затем NIF вы получаете нулевое исключение реф то это, вероятно, вызванное этой линии

TranslateTransform tt = (OPMenuScreen.RenderTransform as TransformGroup).Children[0] as TranslateTransform; 

Который, вероятно, означает, что элемент 0 имущества детей не существует, потому что дети равна нулю.

+0

: Если это так, как мне назначить OPMenuScreen для TranslateTransform, чтобы он мог анимировать уменьшение -250 каждый раз, когда вызывается метод? – Corbee

Смежные вопросы