2011-11-09 22 views
0

我新的WPF,我得到错误每次我跑我的代码无法获得网格面板进行翻译转换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