ModelVisual3D Class

Definition

Provides a Visual3D that renders Model3D objects.

public ref class ModelVisual3D : System::Windows::Media::Media3D::Visual3D, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Children")]
public class ModelVisual3D : System.Windows.Media.Media3D.Visual3D, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Children")>]
type ModelVisual3D = class
    inherit Visual3D
    interface IAddChild
Public Class ModelVisual3D
Inherits Visual3D
Implements IAddChild
Inheritance
Attributes
Implements

Examples

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>

Remarks

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.

Constructors

ModelVisual3D()

Initializes a new instance of the ModelVisual3D class.

Fields

ContentProperty

Identifies the Content dependency property.

TransformProperty

Identifies the Transform dependency property.

Properties

Children

Gets a collection of child Visual3D objects.

Content

Gets or sets the model that comprises the content of the ModelVisual3D.

DependencyObjectType

Gets the DependencyObjectType that wraps the CLR type of this instance.

(Inherited from DependencyObject)
Dispatcher

Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
HasAnimatedProperties

Gets a value that indicates whether this Visual3D has any animated properties.

(Inherited from Visual3D)
IsSealed

Gets a value that indicates whether this instance is currently sealed (read-only).

(Inherited from DependencyObject)
Transform

Gets or sets the transform set on the ModelVisual3D.

Visual3DChildrenCount

Returns the number of child objects.

Visual3DModel

Gets or sets the Model3D object to render.

(Inherited from Visual3D)

Methods

AddVisual3DChild(Visual3D)

Defines the parent-child relationship between two 3-D visuals.

(Inherited from Visual3D)
ApplyAnimationClock(DependencyProperty, AnimationClock)

Applies the effect of a given AnimationClock to a given dependency property.

(Inherited from Visual3D)
ApplyAnimationClock(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)
BeginAnimation(DependencyProperty, AnimationTimeline)

Initiates an animation sequence for the DependencyProperty object, based on the specified AnimationTimeline.

(Inherited from Visual3D)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Initiates an animation sequence for the DependencyProperty object, based on both the specified AnimationTimeline and HandoffBehavior.

(Inherited from Visual3D)
CheckAccess()

Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearValue(DependencyProperty)

Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier.

(Inherited from DependencyObject)
ClearValue(DependencyPropertyKey)

Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey.

(Inherited from DependencyObject)
CoerceValue(DependencyProperty)

Coerces 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)
Equals(Object)

Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Inherited from DependencyObject)
FindCommonVisualAncestor(DependencyObject)

Returns the common ancestor of the visual object and another specified visual object.

(Inherited from Visual3D)
GetAnimationBaseValue(DependencyProperty)

Retrieves the base value of the specified DependencyProperty object.

(Inherited from Visual3D)
GetHashCode()

Gets a hash code for this DependencyObject.

(Inherited from DependencyObject)
GetLocalValueEnumerator()

Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Inherited from DependencyObject)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
GetValue(DependencyProperty)

Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Inherited from DependencyObject)
GetVisual3DChild(Int32)

Returns the specified Visual3D in the parent collection.

InvalidateProperty(DependencyProperty)

Re-evaluates the effective value for the specified dependency property.

(Inherited from DependencyObject)
IsAncestorOf(DependencyObject)

Determines whether the visual object is an ancestor of the descendant visual object.

(Inherited from Visual3D)
IsDescendantOf(DependencyObject)

Determines whether the visual object is a descendant of the ancestor visual object.

(Inherited from Visual3D)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invoked 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)
OnVisualChildrenChanged(DependencyObject, DependencyObject)

Called when the Visual3DCollection of the visual object is modified.

(Inherited from Visual3D)
OnVisualParentChanged(DependencyObject)

Called when the parent of the 3-D visual object is changed.

(Inherited from Visual3D)
ReadLocalValue(DependencyProperty)

Returns the local value of a dependency property, if it exists.

(Inherited from DependencyObject)
RemoveVisual3DChild(Visual3D)

Removes the parent-child relationship between two 3-D visuals.

(Inherited from Visual3D)
SetCurrentValue(DependencyProperty, Object)

Sets the value of a dependency property without changing its value source.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object)

Sets the local value of a dependency property, specified by its dependency property identifier.

(Inherited from DependencyObject)
SetValue(DependencyPropertyKey, Object)

Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Inherited from DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Inherited from DependencyObject)
ToString()

Returns a string that represents the current object.

(Inherited from Object)
TransformToAncestor(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)
TransformToAncestor(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)
TransformToDescendant(Visual3D)

Returns a transform that can be used to transform coordinates from this Visual3D object to the specified Visual3D descent object.

(Inherited from Visual3D)
VerifyAccess()

Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Explicit Interface Implementations

IAddChild.AddChild(Object)

Adds a child object.

IAddChild.AddText(String)

Adds the text content of a node to the object.

Applies to