Welcome to WindowsClient.net | Sign in | Join

The Control Gallery is a directory of controls that you can use in your applications. The number in parenthesis indicates how many controls are available in the category.

Custom Converter (Camera Translation/Rotation - Maintain Focus on Object)

Control Author:

Posted: 05-10-2007

Views: 880

Downloads: 514

 
File Details

<p class="MsoNormal" style='margin: 0in 0in 0pt'><font face='Trebuchet MS' size='2'>Thanks to Kurt Berglund for providing this sample.</font></p>
<br />
<a href="http://photobucket.com/" target="_blank"><img alt="Photobucket - Video and Image Hosting" border="0" height="298" src="http://i136.photobucket.com/albums/q177/legendDK/camera2.png" width="298" /></a> <br />
<p class="MsoNormal" style='margin: 0in 0in 0pt'>&nbsp;</p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><strong><span style='font-size: 14pt; color: blue; font-family: &#39;Courier New&#39;'>THIS IS NOT THE ENTIRE SOURCE, ONLY KEY SNIPPETS.</span></strong></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: blue; font-family: &#39;Courier New&#39;'><font size='2'>&nbsp;</font></span></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Window</span><span style='color: blue; font-family: &#39;Courier New&#39;'> </span><span style='color: red; font-family: &#39;Courier New&#39;'>x:Class</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>Camera2.Window1</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>xmlns</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>http://schemas.microsoft.com/winfx/2006/xaml/presentation</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>xmlns:x</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>http://schemas.microsoft.com/winfx/2006/xaml</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>Title</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>Camera2</span>&quot;<span style='color: blue'> </span><span style='color: red'>Height</span><span style='color: blue'>=</span>&quot;<span style='color: blue'>300</span>&quot;<span style='color: blue'> </span><span style='color: red'>Width</span><span style='color: blue'>=</span>&quot;<span style='color: blue'>300</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: blue; font-family: &#39;Courier New&#39;'><span><font size='2'>&nbsp;&nbsp;&nbsp; </font></span></span><strong><span style='font-size: 12pt; color: red; font-family: &#39;Courier New&#39;'>xmlns:local</span></strong><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'>=</span></strong><strong><span style='font-size: 12pt; font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>clr-namespace:ConvertXaml</span>&quot;</span></strong><span style='color: blue; font-family: &#39;Courier New&#39;'><font size='2'> &gt;</font></span></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: blue; font-family: &#39;Courier New&#39;'><font size='2'>&nbsp;</font></span></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Window.Resources</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: blue; font-family: &#39;Courier New&#39;'><span><font size='2'>&nbsp;&nbsp;&nbsp; </font></span></span><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'>&lt;</span></strong><strong><span style='font-size: 12pt; color: maroon; font-family: &#39;Courier New&#39;'>local:LookDirConverter</span></strong><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'> </span></strong><strong><span style='font-size: 12pt; color: red; font-family: &#39;Courier New&#39;'>x:Key</span></strong><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'>=</span></strong><strong><span style='font-size: 12pt; font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>lookDirConverter</span>&quot;<span style='color: blue'> </span></span></strong></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style='font-size: 12pt; color: red; font-family: &#39;Courier New&#39;'>local:LookAtPoint</span></strong><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'>=</span></strong><strong><span style='font-size: 12pt; font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>0,0,0</span>&quot;<span style='color: blue'> /&gt;</span></span></strong></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp; </span>&lt;/</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Window.Resources</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: blue; font-family: &#39;Courier New&#39;'><font size='2'><span>&nbsp; </span></font></span></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Viewport3D</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Viewport3D.Triggers</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>EventTrigger</span><span style='color: blue; font-family: &#39;Courier New&#39;'> </span><span style='color: red; font-family: &#39;Courier New&#39;'>RoutedEvent</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>Viewport3D.Loaded</span>&quot;<span style='color: blue'>&gt;</span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>BeginStoryboard</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Storyboard</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Point3DAnimation</span><span style='color: blue; font-family: &#39;Courier New&#39;'> </span><span style='color: red; font-family: &#39;Courier New&#39;'>From</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>4,8,12</span>&quot;<span style='color: blue'> </span><span style='color: red'>To</span><span style='color: blue'>=</span>&quot;<span style='color: blue'>12,8,4</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>Storyboard.TargetName</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>myPerspectiveCamera</span>&quot;<span style='color: blue'></span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>Storyboard.TargetProperty</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>Position</span>&quot;<span style='color: blue'><span>&nbsp; </span></span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>AutoReverse</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>True</span>&quot;<span style='color: blue'> </span><span style='color: red'>RepeatBehavior</span><span style='color: blue'>=</span>&quot;<span style='color: blue'>Forever</span>&quot;<span style='color: blue'> </span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style='color: red; font-family: &#39;Courier New&#39;'>Duration</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>0:0:3</span>&quot;<span style='color: blue'>/&gt;</span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Storyboard</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>BeginStoryboard</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>EventTrigger</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span>&lt;/</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Viewport3D.Triggers</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: blue; font-family: &#39;Courier New&#39;'><font size='2'>&nbsp;</font></span></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Viewport3D.Camera</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>PerspectiveCamera</span><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>x:Name</span><span style='color: blue; font-family: &#39;Courier New&#39;'>=</span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>myPerspectiveCamera</span>&quot;<span style='color: blue'> </span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><span style='color: red; font-family: &#39;Courier New&#39;'><span><font size='2'>&nbsp;</font></span></span><strong><span style='font-size: 12pt; color: red; font-family: &#39;Courier New&#39;'>LookDirection</span></strong><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'> = </span></strong><strong><span style='font-size: 12pt; font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>{Binding ElementName=myPerspectiveCamera, </span></span></strong></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Path=Position, </span></strong></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Converter={StaticResource lookDirConverter}, </span></strong></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><strong><span style='font-size: 12pt; color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Mode=OneWay}</span></strong><strong><span style='font-size: 12pt; font-family: &#39;Courier New&#39;'>&quot;</span></strong><span style='color: blue; font-family: &#39;Courier New&#39;'><font size='2'> </font></span></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>UpDirection</span><span style='color: blue; font-family: &#39;Courier New&#39;'> = </span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>0, 1, 0</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>Position</span><span style='color: blue; font-family: &#39;Courier New&#39;'> = </span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>8, 8, 8</span>&quot;</span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style='color: red; font-family: &#39;Courier New&#39;'>FieldOfView</span><span style='color: blue; font-family: &#39;Courier New&#39;'> = </span><span style='font-family: &#39;Courier New&#39;'>&quot;<span style='color: blue'>60</span>&quot;<span style='color: blue'> /&gt;</span></span></font></p>
<p class="MsoNormal" style='background: #f3f3f3; margin: 0in 0in 0pt'><font size='2'><span style='color: blue; font-family: &#39;Courier New&#39;'><span>&nbsp;&nbsp;&nbsp; </span>&lt;/</span><span style='color: maroon; font-family: &#39;Courier New&#39;'>Viewport3D.Camera</span><span style='color: blue; font-family: &#39;Courier New&#39;'>&gt;</span></font></p>




Page view counter