WPF C#

    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.cs
using System.Windows;
using System.Windows.Controls;
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,(Material)TryFindResource("diffuseMaterial"));
        }
        private void CreateTriangles(Viewport3D viewport3D,int triangleCount, MeshGeometry3D triangleMesh,Material material)
        {
             ModelVisual3D modelVisual3D = new ModelVisual3D();
             GeometryModel3D geometryModel3D = new GeometryModel3D();
             geometryModel3D.Geometry = triangleMesh;
             geometryModel3D.Material = material;
             modelVisual3D.Content = geometryModel3D;
             RotateTransform3D rotateTransform= new RotateTransform3D();
             rotateTransform.Rotation = new AxisAngleRotation3D(new Vector3D(0, 0, -1),90);
             modelVisual3D.Transform = rotateTransform;
             viewport3D.Children.Add(modelVisual3D);
        }
    }
}