WPF C# Tutorial

  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.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Media3D;
namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
        private void Window1_Loaded(object sender, RoutedEventArgs e)
        {
            MeshGeometry3D triangleMesh = (MeshGeometry3D)TryFindResource("triangleMesh");
            CreateTriangles(vp1, 4, triangleMesh);
        }
        private void CreateTriangles(Viewport3D viewport3D,int triangleCount, MeshGeometry3D triangleMesh)
        {
                ModelVisual3D modelVisual3D = new ModelVisual3D();
                GeometryModel3D geometryModel3D = new GeometryModel3D();
                geometryModel3D.Geometry = triangleMesh;
                geometryModel3D.Material= new DiffuseMaterial(Brushes.Firebrick);
                modelVisual3D.Content = geometryModel3D;
                RotateTransform3D rotateTransform = new RotateTransform3D();
                rotateTransform.Rotation = new AxisAngleRotation3D(new Vector3D(0, 0, -1), 20);
                modelVisual3D.Transform = rotateTransform;
                viewport3D.Children.Add(modelVisual3D);
        }
    }
}