下午碰到创建的viewport3dx是黑屏,且一点击就崩的问题:崩溃的错误报在helix的库里,是个null值的错误
最后排查下来发现是EffectsManager没有设置
中间猜到是这个的错了,但是当时踩了另外一个坑:
当时为了方便测试,将EffectsManager绑定的值放在了view里,但是给这个属性赋值的语句写在了view的构造函数的InitializeComponent();之后,这样的话会遇到同样的错误,晚上又试了一下发现将赋值语句放在InitializeComponent();之前就没有问题。
理解为InitializeComponent里对viewport3dx这个控件执行了一些操作,需要用到EffectsManager,而先与InitializeComponent函数给EffectsManager赋值,或者是在mvvm模式下,在ioc容器中注册了对应的viewmodel的话,也可以在InitializeComponent函数中从datacontext里取到对应的EffectsManager实例。
补充内容: