You can add animations to move the camera’s position, or its zoom say, in exactly the same way and create a “fly past” but to make it look impressive you will need more than a single cube and this is the start of a very big project…
If you would like the code for this project then register and click on CodeBin or you can copy and paste the listing below.
Listing
The complete program is (omitting the usual using statements):
using System.Windows.Media.Media3D; using System.Windows.Media.Animation;namespace Cube1 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } MeshGeometry3D MCube() { MeshGeometry3D cube = new MeshGeometry3D(); Point3DCollection corners = new Point3DCollection(); corners.Add(new Point3D(0.5, 0.5, 0.5)); corners.Add(new Point3D(-0.5, 0.5, 0.5)); corners.Add(new Point3D(-0.5, -0.5, 0.5)); corners.Add(new Point3D(0.5, -0.5, 0.5)); corners.Add(new Point3D(0.5, 0.5, -0.5)); corners.Add(new Point3D(-0.5, 0.5, -0.5)); corners.Add(new Point3D(-0.5, -0.5, -0.5)); corners.Add(new Point3D(0.5, -0.5, -0.5)); cube.Positions = corners;
For a class to be instantiated by XAML it has to have a parameter-less constructor. This means that properties that might be essential to creating the instance can be initialized in any order and this [ ... ]
WPF provides multiple ways to convert vector drawings to bitmaps. Find out how DrawingImage and DrawingVisual work and when to use which. On the way we look at how to create 2D vector drawings.
Routed events are a key feature of WPF. We look at bubbling and tunnelling and how to create your own routed event and how WPF changes the underlying mechanics of Windows.