我有一个Viewport3D,里面有几个项目,我想要添加来自可以绑定数据的集合的其他项目。是否有这样的东西,允许这样的代码:
<Viewport3D>
<Viewport3D.Camera...>
<ModelVisual3D>
<ModelVisual3D.Content>
<AmbientLight Color="White"/>
</ModelVisual3D.Content>
</ModelVisual3D>
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate ...>
<ModelVisual3D ....>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Viewport3D>
答案 0 :(得分:1)
Josh smith使用viewport3d来托管图片列表.... http://joshsmithonwpf.wordpress.com/2008/03/30/animating-images-in-a-3d-itemscontrol/
这是你寻求的吗?
答案 1 :(得分:0)
我的解决方案是使用标准的itemscontrol,并将Viewport3D控件叠加在一起。这不尊重深度排序,但在我的情况下,我希望itemscontrol中的项目仍然在其余元素的前面:
<ItemsControl ItemsSource="{Binding XXX}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type XXX}">
<Viewport3D Camera="{Binding Camera, ElementName=MainViewport}">
<ModelVisual3D>
<ModelVisual3D.Content>
<AmbientLight Color="White"/>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
...my template here...
</ModelVisual3D>
</Viewport3D>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>