Interact with 3D Objects : 3D « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="" Height="300" Width="300">
  <Viewport3D>
    <Viewport3D.Camera>
      <PerspectiveCamera LookDirection="0,0,-1" Position="0,0,5" />
    </Viewport3D.Camera>
    <ModelVisual3D>
      <ModelVisual3D.Content>
        <AmbientLight Color="White" />
      </ModelVisual3D.Content>
    </ModelVisual3D>
    <ModelUIElement3D MouseDown="polygon1_MouseDown">
      <GeometryModel3D>
        <GeometryModel3D.Geometry>
          <MeshGeometry3D Positions="-1,-1,1 1,-1,1 1,1,1" TriangleIndices="0 1 2" />
        </GeometryModel3D.Geometry>
        <GeometryModel3D.Material>
          <DiffuseMaterial Brush="Firebrick" />
        </GeometryModel3D.Material>
      </GeometryModel3D>
    </ModelUIElement3D>
    <ModelUIElement3D MouseDown="polygon2_MouseDown">
      <GeometryModel3D>
        <GeometryModel3D.Geometry>
          <MeshGeometry3D Positions="1,-1,0 1,1,0 -1,1,0" TriangleIndices="0 1 2" />
        </GeometryModel3D.Geometry>
        <GeometryModel3D.Material>
          <DiffuseMaterial Brush="CornflowerBlue" />
        </GeometryModel3D.Material>
      </GeometryModel3D>
    </ModelUIElement3D>
    <ModelUIElement3D MouseDown="polygon3_MouseDown">
      <GeometryModel3D>
        <GeometryModel3D.Geometry>
          <MeshGeometry3D Positions="1,0,0 1,1,0 0,1,0" TriangleIndices="0 1 2" />
        </GeometryModel3D.Geometry>
        <GeometryModel3D.Material>
          <DiffuseMaterial Brush="OrangeRed"/>
        </GeometryModel3D.Material>
      </GeometryModel3D>
    </ModelUIElement3D>
  </Viewport3D>
</Window>
//File:Window.xaml.cs
using System.Windows;
using System.Windows.Input;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void polygon1_MouseDown(object sender,
            MouseButtonEventArgs e)
        {
            MessageBox.Show("polygon1_MouseDown", "WpfApplication1");
        }

        private void polygon2_MouseDown(object sender,
            MouseButtonEventArgs e)
        {
            MessageBox.Show("polygon2_MouseDown", "WpfApplication1");
        }

        private void polygon3_MouseDown(object sender,
            MouseButtonEventArgs e)
        {
            MessageBox.Show("polygon3_MouseDown", "WpfApplication1");
        }
    }
}
WPF Interact With3 D Objects








24.159.3D
24.159.1.MeshGeometry3D with TextureCoordinatesMeshGeometry3D with TextureCoordinates
24.159.2.Painting a 3D surface with a bitmapPainting a 3D surface with a bitmap
24.159.3.ControlDarkDark to ControlLightLightControlDarkDark to ControlLightLight
24.159.4.ControlDark to ControlLightControlDark to ControlLight
24.159.5.CubeCube
24.159.6.Using 3D ModelsUsing 3D Models
24.159.7.Animation RotateTransform3DAnimation RotateTransform3D
24.159.8.Point lightPoint light
24.159.9.Directional lightDirectional light
24.159.10.Spot lightSpot light
24.159.11.Ambient lightAmbient light
24.159.12.Specular MaterialSpecular Material
24.159.13.Diffuse MaterialDiffuse Material
24.159.14.Draw a 3D ModelDraw a 3D Model
24.159.15.Interact with 3D ObjectsInteract with 3D Objects