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="300" Loaded="Window1_Loaded">
    
        
    

    
        
            
                
            

            
                
                                Range="10"
            Direction="0,0,-1" 
            OuterConeAngle="25" 
            InnerConeAngle="20" 
            Position="0,0,9" 
            LinearAttenuation="0.1"
            Color="White" />
                

            

        
    


//File:Window.xaml.vb
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
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)
    End Sub
    Private Sub CreateTriangles(viewport3D As Viewport3D, triangleCount As Integer, triangleMesh As MeshGeometry3D)
      Dim modelVisual3D As New ModelVisual3D()
      Dim geometryModel3D As New GeometryModel3D()
      geometryModel3D.Geometry = triangleMesh
      geometryModel3D.Material = New DiffuseMaterial(Brushes.Firebrick)
      modelVisual3D.Content = geometryModel3D
      Dim rotateTransform As New RotateTransform3D()
      rotateTransform.Rotation = New AxisAngleRotation3D(New Vector3D(0, 0, -1), 20)
      modelVisual3D.Transform = rotateTransform
      viewport3D.Children.Add(modelVisual3D)
    End Sub
  End Class
End Namespace