Есть ли что-то вроде ItemsControl для использования внутри Viewport3D? - PullRequest
1 голос
/ 16 сентября 2011

У меня есть 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>

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Джош Смит использовал viewport3d для размещения списка изображений .... http://joshsmithonwpf.wordpress.com/2008/03/30/animating-images-in-a-3d-itemscontrol/

Это то, что вы ищете?

0 голосов
/ 24 апреля 2012

Мое решение для этого было использовать стандартный элемент управления, и укладывать элементы управления Viewport3D друг на друга. Это не относится к упорядочению по глубине, но в моем случае я хотел, чтобы элементы в элементе управления были в любом случае перед остальными элементами:

    <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>
...