Export (0) Print
Expand All

ModelVisual3D Class

Provides a Visual3D that renders Model3D objects.

Namespace:  System.Windows.Media.Media3D
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[ContentPropertyAttribute(L"Children")]
public ref class ModelVisual3D : public Visual3D, 
	IAddChild
<ModelVisual3D>
  Children
</ModelVisual3D>

The ModelVisual3D type exposes the following members.

  NameDescription
Public methodModelVisual3DInitializes a new instance of the ModelVisual3D class.
Top

  NameDescription
Public propertyChildrenGets a collection of child Visual3D objects.
Public propertyContentGets or sets the model that comprises the content of the ModelVisual3D.
Public propertyDependencyObjectTypeGets the DependencyObjectType that wraps the CLR type of this instance.  (Inherited from DependencyObject.)
Public propertyDispatcherGets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.)
Public propertyHasAnimatedPropertiesGets a value that indicates whether this Visual3D has any animated properties. (Inherited from Visual3D.)
Public propertyIsSealedGets a value that indicates whether this instance is currently sealed (read-only). (Inherited from DependencyObject.)
Public propertyTransformGets or sets the transform set on the ModelVisual3D.
Protected propertyVisual3DChildrenCountReturns the number of child objects. (Overrides Visual3D::Visual3DChildrenCount.)
Protected propertyVisual3DModelGets or sets the Model3D object to render. (Inherited from Visual3D.)
Top

  NameDescription
Protected methodAddVisual3DChildDefines the parent-child relationship between two 3-D visuals. (Inherited from Visual3D.)
Public methodApplyAnimationClock(DependencyProperty, AnimationClock)Applies the effect of a given AnimationClock to a given dependency property. (Inherited from Visual3D.)
Public methodApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)Applies the effect of a given AnimationClock to a given dependency property. The effect of the new AnimationClock on any current animations is determined by the value of the handoffBehavior parameter. (Inherited from Visual3D.)
Public methodBeginAnimation(DependencyProperty, AnimationTimeline)Initiates an animation sequence for the DependencyProperty object, based on the specified AnimationTimeline. (Inherited from Visual3D.)
Public methodBeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)Initiates an animation sequence for the DependencyProperty object, based on both the specified AnimationTimeline and HandoffBehavior. (Inherited from Visual3D.)
Public methodCheckAccessDetermines whether the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.)
Public methodClearValue(DependencyProperty)Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier. (Inherited from DependencyObject.)
Public methodClearValue(DependencyPropertyKey)Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey. (Inherited from DependencyObject.)
Public methodCoerceValueCoerces the value of the specified dependency property. This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject. (Inherited from DependencyObject.)
Public methodEqualsDetermines whether a provided DependencyObject is equivalent to the current DependencyObject. (Inherited from DependencyObject.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodFindCommonVisualAncestorReturns the common ancestor of the visual object and another specified visual object. (Inherited from Visual3D.)
Public methodGetAnimationBaseValueRetrieves the base value of the specified DependencyProperty object. (Inherited from Visual3D.)
Public methodGetHashCodeGets a hash code for this DependencyObject. (Inherited from DependencyObject.)
Public methodGetLocalValueEnumeratorCreates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject. (Inherited from DependencyObject.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetValueReturns the current effective value of a dependency property on this instance of a DependencyObject. (Inherited from DependencyObject.)
Protected methodGetVisual3DChildReturns the specified Visual3D in the parent collection. (Overrides Visual3D::GetVisual3DChild(Int32).)
Public methodInvalidatePropertyRe-evaluates the effective value for the specified dependency property (Inherited from DependencyObject.)
Public methodIsAncestorOfDetermines whether the visual object is an ancestor of the descendant visual object. (Inherited from Visual3D.)
Public methodIsDescendantOfDetermines whether the visual object is a descendant of the ancestor visual object. (Inherited from Visual3D.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnPropertyChangedInvoked whenever the effective value of any dependency property on this DependencyObject has been updated. The specific dependency property that changed is reported in the event data. (Inherited from DependencyObject.)
Protected methodOnVisualChildrenChangedCalled when the Visual3DCollection of the visual object is modified. (Inherited from Visual3D.)
Protected methodOnVisualParentChangedCalled when the parent of the 3-D visual object is changed. (Inherited from Visual3D.)
Public methodReadLocalValueReturns the local value of a dependency property, if it exists. (Inherited from DependencyObject.)
Protected methodRemoveVisual3DChildRemoves the parent-child relationship between two 3-D visuals. (Inherited from Visual3D.)
Public methodSetCurrentValueSets the value of a dependency property without changing its value source. (Inherited from DependencyObject.)
Public methodSetValue(DependencyProperty, Object)Sets the local value of a dependency property, specified by its dependency property identifier. (Inherited from DependencyObject.)
Public methodSetValue(DependencyPropertyKey, Object)Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property. (Inherited from DependencyObject.)
Protected methodShouldSerializePropertyReturns a value that indicates whether serialization processes should serialize the value for the provided dependency property. (Inherited from DependencyObject.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodTransformToAncestor(Visual)Returns a transform that can be used to transform coordinates from this Visual3D object to the specified Visual ancestor of the object. (Inherited from Visual3D.)
Public methodTransformToAncestor(Visual3D)Returns a transform that can be used to transform coordinates from this Visual3D object to the specified Visual3D ancestor of the object. (Inherited from Visual3D.)
Public methodTransformToDescendantReturns a transform that can be used to transform coordinates from this Visual3D object to the specified Visual3D descent object. (Inherited from Visual3D.)
Public methodVerifyAccessEnforces that the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.)
Top

  NameDescription
Public fieldStatic memberContentPropertyIdentifies the Content dependency property.
Public fieldStatic memberTransformPropertyIdentifies the Transform dependency property.
Top

  NameDescription
Explicit interface implemetationPrivate methodIAddChild::AddChildInfrastructure. Adds a child object.
Explicit interface implemetationPrivate methodIAddChild::AddTextInfrastructure. Adds the text content of a node to the object.
Top

Provides services and properties that are common to all visual objects, including hit-testing, coordinate transformation, and bounding-box calculations.

The ModelVisual3D class has a Children property that enables you to build a tree structure of ModelVisual3D objects.

ModelVisual3D objects are optimized as scene nodes. For example, they cache bounds. Whenever you can, use ModelVisual3D objects for unique instances of objects within your scene. This usage contrasts with that of Model3D objects, which are lightweight objects that are optimized to be shared and reused. For example, use a Model3D object to build a model of a car; and use ten ModelVisual3D objects to place ten cars in your scene.

The following example shows an instance of ModelVisual3D in markup. myTeapot refers to a MeshGeometry3D defined externally. You can substitute any geometry of your own.

<DockPanel>
  <Viewport3D Name="myViewport">

    <Viewport3D.Camera>
      <PerspectiveCamera FarPlaneDistance="20" LookDirection="5,-2,-3" UpDirection="0,1,0" NearPlaneDistance="0" Position="-5,2,3" FieldOfView="45" />
    </Viewport3D.Camera>

    <ModelVisual3D x:Name="topModelVisual3D">
      <ModelVisual3D.Children>
        <ModelVisual3D>
          <ModelVisual3D.Content>
            <DirectionalLight Color="#FFFFFFFF" Direction="-3,-4,-5" />
          </ModelVisual3D.Content>
        </ModelVisual3D>

        <ModelVisual3D>
          <ModelVisual3D.Content>
            <GeometryModel3D Geometry="{StaticResource myTeapot}">
              <GeometryModel3D.Material>
                <DiffuseMaterial>
                  <DiffuseMaterial.Brush>
                    <SolidColorBrush Color="Blue" Opacity="1.0" />
                  </DiffuseMaterial.Brush>
                </DiffuseMaterial>
              </GeometryModel3D.Material>
              <GeometryModel3D.Transform>
                <RotateTransform3D>
                  <RotateTransform3D.Rotation>
                    <AxisAngleRotation3D x:Name="myAngleRotation" Axis="0,3,0" Angle="1" />
                  </RotateTransform3D.Rotation>
                </RotateTransform3D>
              </GeometryModel3D.Transform>
            </GeometryModel3D>
          </ModelVisual3D.Content>
        </ModelVisual3D>


      </ModelVisual3D.Children>
    </ModelVisual3D>


    <Viewport3D.Triggers>

      <EventTrigger RoutedEvent="Viewport3D.Loaded">
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation 
              Storyboard.TargetName="myAngleRotation"
              Storyboard.TargetProperty="Angle"
              From="0" To="360" Duration="0:0:10"
              RepeatBehavior="Forever" />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger>
    </Viewport3D.Triggers>


  </Viewport3D>
</DockPanel>

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft