WPF VB.Net

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="" Height="300" Width="800" Loaded="Window1_Loaded">
    
              x:Key="triangleMesh"
      Positions="-1,-1,0 1,-1,-2 1,1,0" 
      TriangleIndices="0 1 2" />
        
        
            
                    Brush="White" 
        SpecularPower="5" />
        
        
            
            
        
    

    
        
           
        

        
            
                
            

        

    

//File:Window.xaml.vb
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media.Media3D
Namespace WpfApplication1
  Public Partial Class Window1
    Inherits Window
    Public Sub New()
      InitializeComponent()
    End Sub
    Private Sub Window1_Loaded(sender As Object, e As RoutedEventArgs)
      Dim triangleMesh As MeshGeometry3D = DirectCast(TryFindResource("triangleMesh"), MeshGeometry3D)
      CreateTriangles(vp1, 4, triangleMesh, DirectCast(TryFindResource("diffuseMaterial"), Material))
    End Sub
    Private Sub CreateTriangles(viewport3D As Viewport3D, triangleCount As Integer, triangleMesh As MeshGeometry3D, material As Material)
      Dim modelVisual3D As New ModelVisual3D()
      Dim geometryModel3D As New GeometryModel3D()
      geometryModel3D.Geometry = triangleMesh
      geometryModel3D.Material = material
      modelVisual3D.Content = geometryModel3D
      Dim rotateTransform As New RotateTransform3D()
      rotateTransform.Rotation = New AxisAngleRotation3D(New Vector3D(0, 0, -1), 90)
      modelVisual3D.Transform = rotateTransform
      viewport3D.Children.Add(modelVisual3D)
    End Sub
  End Class
End Namespace