我创建了一个模型(立方体)并将其添加到我的视窗中,它工作正常,没有任何问题。
This.mainViewport.Children.Add(模型);
当我使用下面的代码时,立方体变成黑色而不是原来的颜色。
this.mainViewport.Children.Clear();this.mainViewport.Children.Add(模型);
我需要清除视口,因为我将在下一秒将立方体添加到另一个位置。任何解决这个问题的建议都将受到高度赞赏。
发布于 2012-07-10 02:09:46
我会做这样的事情:第一次在它的开始位置创建立方体:
ModelVisual3D model = new ModelVisual3D();
model.Content = cube;然后在计时器中,我会用新的位置改变变换:
model.Transform = new TranslateTransform3D(X, Y, Z); // model need to be a field in your class其他可用的变态是:
发布于 2015-04-20 19:13:38
我知道这是一个古老的问题,但正确的答案可能会对某些人有所帮助。立方体变黑是因为
this.mainViewportChildren.Clear()
同时删除光源(任一),要使立方体获得原始颜色,必须在代码中添加类似以下内容:
this.mainViewport.Children.Add(new ModelVisual3D() { Content = new AmbientLight(Colors.White) });
发布于 2020-10-15 19:56:13
//if you use ScreenSpaceLines3D
for (int i = _mainViewport.Children.Count - 1; i >= 0; i--)
{
ModelVisual3D modelVisual3D = ModelVisual3D)_mainViewport.Children[i];
if (modelVisual3D is ScreenSpaceLines3D)
{
ScreenSpaceLines3D line3D = ScreenSpaceLines3D)_mainViewport.Children[i];
line3D.Points.Clear();
continue;
}
if (modelVisual3D.Content is DirectionalLight == false)
{
mainViewport.Children.Remove(modelVisual3D);
}
}https://stackoverflow.com/questions/11400180
复制相似问题