System.Windows.Media.Media3 ...


.NET Framework 类库
Viewport2DVisual3D 类

更新:2007 年 11 月

在指定的三维视区边界内呈现二维子对象。

命名空间:  System.Windows.Media.Media3D
程序集:  PresentationCore(在 PresentationCore.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation

语法

Visual Basic(声明)
<ContentPropertyAttribute("Visual")> _
Public NotInheritable Class Viewport2DVisual3D _
    Inherits Visual3D
Visual Basic (用法)
Dim instance As Viewport2DVisual3D
C#
[ContentPropertyAttribute("Visual")]
public sealed class Viewport2DVisual3D : Visual3D
Visual C++
[ContentPropertyAttribute(L"Visual")]
public ref class Viewport2DVisual3D sealed : public Visual3D
J#
/** @attribute ContentPropertyAttribute("Visual") */
public final class Viewport2DVisual3D extends Visual3D
JScript
public final class Viewport2DVisual3D extends Visual3D
XAML 对象元素用法
<Viewport2DVisual3D>
  Visual
</Viewport2DVisual3D>
备注

使用 Viewport2DVisual3D 可以在三维对象上放置交互式二维内容。与它非常类似的是 Viewport3DVisual 类,这是一个带有三维子对象的二维可视化类。

Viewport2DVisual3D 是在 .NET Framework 3.5 版中引入的。有关更多信息,请参见 .NET Framework 3.5 体系结构

示例

下面的示例演示如何在三维对象上放置二维的按钮对象。请注意,必须在要放置二维可视化对象的材料上设置 IsVisualHostMaterial 附加属性。

C#
<Viewport3D>
    <Viewport3D.Camera>
        <PerspectiveCamera Position="0, 0, 4"/>
    </Viewport3D.Camera>

    <!-- Button on 3D -->
    <Viewport2DVisual3D>
        <!-- Give the plane a slight rotation -->
        <Viewport2DVisual3D.Transform>
            <RotateTransform3D>
                <RotateTransform3D.Rotation>
                    <AxisAngleRotation3D Angle="40" Axis="0, 1, 0" />
                </RotateTransform3D.Rotation>
            </RotateTransform3D>
        </Viewport2DVisual3D.Transform>

        <!-- The Geometry, Material, and Visual for the Viewport2DVisual3D -->
        <Viewport2DVisual3D.Geometry>
            <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0"
                            TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
        </Viewport2DVisual3D.Geometry>

        <Viewport2DVisual3D.Material>
            <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
        </Viewport2DVisual3D.Material>                               

        <Button>Hello, 3D</Button>
    </Viewport2DVisual3D>

    <!-- Lights -->
    <ModelVisual3D>
        <ModelVisual3D.Content>
            <DirectionalLight Color="#FFFFFFFF" Direction="0,0,-1"/>
        </ModelVisual3D.Content>
    </ModelVisual3D>
</Viewport3D>

有关完整示例,请参见三维中的交互式二维示例

继承层次结构

System..::.Object
  System.Windows.Threading..::.DispatcherObject
    System.Windows..::.DependencyObject
      System.Windows.Media.Media3D..::.Visual3D
        System.Windows.Media.Media3D..::.Viewport2DVisual3D
线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
平台

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.5 SP1、3.0 SP1
另请参见

参考

其他资源

标记 :


Page view tracker