雖然詳細地討論視頻和3-D超越了這本書的範圍,但是獲得這些特徵的支援是值得的。
視頻由MediaElement類型支援。這個元素可以被添加到UI樹的任何地方。簡單的設定它的Source屬性以關聯到它要播放的視頻流,如樣本7-49所示。
樣本7-49
<MediaElement Source="C:\WINDOWS\system32\oobe\images\intro.wmv" Stretch="Fill" />
3-D內容通過Viewport3D支援。直到WPF的外觀系統被關聯,Viewport3D只是一個正規的控制項,同時它可以被設定大小和定位,像其它控制項那樣。然而,你提供了這樣的控制項,帶有3-D模型、發光、照相機位置資訊。它會產生這個模型。這個控制項擔當了一個3-D螢幕上的表單,正如樣本7-50所示。
樣本7-50
<Viewport3D ClipToBounds="true">
<Viewport3D.Camera>
<PerspectiveCamera NearPlaneDistance="1" FarPlaneDistance="100"
LookAtPoint="0,0,0" Position="30, -2, 20" Up="0, 0, 1"
FieldOfView="45" />
</Viewport3D.Camera>
<Viewport3D.Models>
<Model3DGroup>
<DirectionalLight Color="#FFFFFFFF" Direction="10,25,-1" />
<AmbientLight Color="#66666666" />
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D
TriangleIndices="0 1 2 1 2 3 2 3 0 0 1 3"
Normals="-1,-1,0 1,-1,0 1,0,0 0,0,1"
Positions="-2,-2,-2 2,-2,-2 0,2,-2 0,0,1"/>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<MaterialGroup>
<DiffuseMaterial Brush="LightGreen" />
<SpecularMaterial Brush="White" />
</MaterialGroup>
</GeometryModel3D.Material>
</GeometryModel3D >
</Model3DGroup>
</Viewport3D.Models>
</Viewport3D>
這就建立了一個非常簡單的3-D模型,包含了一個單獨的基於正方形的錐形。圖7-58顯示了結果。這個模型還包含了一些光源來保證模型是可見的。這個Viewport還有一個詳細指出的照相機位置。
圖7-58
實際上,你可以正常的使用任意類型的3-D設計工具模型,因此你不能典型地希望和模型標記一起工作,如樣本7-50所示。Viewport3D僅提供了一個便利的方法,將結果集成到你的視覺化樹狀結構中。