Exportar (0) Imprimir
Expandir todo

ContainerUIElement3D (Clase)

Actualización: noviembre 2007

Representa un contenedor de objetos Visual3D.

Espacio de nombres:  System.Windows.Media.Media3D
Ensamblado:  PresentationCore (en PresentationCore.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[ContentPropertyAttribute("Children")]
public sealed class ContainerUIElement3D : UIElement3D
/** @attribute ContentPropertyAttribute("Children") */
public final class ContainerUIElement3D extends UIElement3D
public final class ContainerUIElement3D extends UIElement3D
<ContainerUIElement3D>
  Children
</ContainerUIElement3D>

Modelo de contenido: ContainerUIElement3D exige un modelo de contenido seguro para el contenido secundario. La recolección Children de un elemento ContainerUIElement3D sólo puede estar compuesta de objetos UIElement3D. Al agregar un elemento secundario UIElement3D a ContainerUIElement3D, se agrega implícitamente a Visual3DCollection para el elemento ContainerUIElement3D.

ContainerUIElement3D no tiene representación visual; actúa como contenedor de otros objetos 3D visuales. ContainerUIElement3D es un objeto UIElement3D, que proporciona la compatibilidad para la entrada, el foco y los eventos en 3D.

Esta clase no establece la propiedad Visual3DModel.

ContainerUIElement3D aparece por primera vez en .NET Framework versión 3.5. Para obtener más información, vea Arquitectura de .NET Framework 3.5.

En el ejemplo siguiente, el objeto ContainerUIElement3D contiene dos cubos como sus elementos secundarios:

<Viewport3D>
    <Viewport3D.Camera>
        <PerspectiveCamera Position="8,3,0" LookDirection="-8,-3,0" />
    </Viewport3D.Camera>

    <!-- The container has the two cubes as its children -->
    <ContainerUIElement3D MouseDown="ContainerMouseDown">
        <ContainerUIElement3D.Transform>
            <RotateTransform3D>
                <RotateTransform3D.Rotation>
                    <AxisAngleRotation3D x:Name="containerRotation" Axis="0, 1, 0" Angle="0" />
                </RotateTransform3D.Rotation>
            </RotateTransform3D>
        </ContainerUIElement3D.Transform>

        <!-- Cube 1 -->
        <ModelUIElement3D MouseDown="Cube1MouseDown">
            <ModelUIElement3D.Transform>
                <TranslateTransform3D OffsetZ="1.5" />
            </ModelUIElement3D.Transform>

            <ModelUIElement3D.Model>
                <GeometryModel3D Geometry="{StaticResource CubeMesh}">
                    <GeometryModel3D.Material>
                        <DiffuseMaterial x:Name="cube1Material" Brush="Blue" />
                    </GeometryModel3D.Material>
                </GeometryModel3D>
            </ModelUIElement3D.Model>
        </ModelUIElement3D>

        <!-- Cube 2 -->
        <ModelUIElement3D MouseDown="Cube2MouseDown">
            <ModelUIElement3D.Transform>
                <TranslateTransform3D OffsetZ="-1.5" />
            </ModelUIElement3D.Transform>

            <ModelUIElement3D.Model>
                <GeometryModel3D Geometry="{StaticResource CubeMesh}">
                    <GeometryModel3D.Material>
                        <DiffuseMaterial x:Name="cube2Material" Brush="Green" />
                    </GeometryModel3D.Material>
                </GeometryModel3D>
            </ModelUIElement3D.Model>
        </ModelUIElement3D>                
    </ContainerUIElement3D>

    <!-- Lights -->
    <ModelVisual3D>
        <ModelVisual3D.Content>
            <PointLight Color="White" Position="3, 10, 4" />
        </ModelVisual3D.Content>
    </ModelVisual3D>
</Viewport3D>



En el siguiente ejemplo se muestra el controlador de eventos del contenedor:

// When the ContainerUIElement3D that has the two cubes as its children gets the
// routed click event, spin the cubes in a 360 degree circle
private void ContainerMouseDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;

    // spin the cubes around
    DoubleAnimation doubleAnimation = new DoubleAnimation(0, 
                                                          360,
                                                          new Duration(TimeSpan.FromSeconds(0.5)));
    containerRotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, doubleAnimation);
}


Para obtener el ejemplo completo, vea Ejemplo Handling Events in 3-D.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5 SP1, 3.0 SP1

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft