Welcome to Windows Presentation Foundation (WPF)
Top Tasks :

Databinding in a 3D Scene

File Details
Downloads: 1013 File Size: 35.3kB
Posted By: aatwal Views: 2843
Date Added: 19 Oct 2006

Thanks to Kurt Berglund for helping to provide this sample.


Photobucket - Video and Image Hosting

 

 

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <StackPanel>

    <Label>X</Label>

    <Slider Name="sliderX" Minimum="0" Maximum="5" Value="1"/>

    <Label>Y</Label>

    <Slider Name="sliderY" Minimum="0" Maximum="5" Value="1"/>

    <Label>Z</Label>

    <Slider Name="sliderZ" Minimum="0" Maximum="5" Value="1"/>

    <Viewport3D Width="200" Height="200">

      <Viewport3D.Camera>

        <PerspectiveCamera  LookDirection = "-4, -4, -4"

                            UpDirection = "0, 1, 0"

                            Position = "4, 4, 4"

                            FieldOfView = "45" />

      </Viewport3D.Camera>

      <ModelVisual3D>

        <ModelVisual3D.Children>

          <ModelVisual3D>

            <ModelVisual3D.Content>

        <DirectionalLight Color="#FFFFFF" Direction="-0.5,-0.3,-1"/>

            </ModelVisual3D.Content>

          </ModelVisual3D>

          <ModelVisual3D>

            <ModelVisual3D.Transform>

              <Transform3DGroup>

                <Transform3DGroup.Children>

            <ScaleTransform3D CenterX="0" CenterY="0" CenterZ="0"

ScaleX="{Binding ElementName=sliderX,Path=Value}" ScaleY="1" ScaleZ="1" />

                  <ScaleTransform3D CenterX="0" CenterY="0" CenterZ="0"

ScaleY="{Binding ElementName=sliderY,Path=Value}" ScaleX="1" ScaleZ="1" />

                  <ScaleTransform3D CenterX="0" CenterY="0" CenterZ="0"

ScaleZ="{Binding ElementName=sliderZ,Path=Value}" ScaleX="1" ScaleY="1" />

                </Transform3DGroup.Children>

              </Transform3DGroup>

            </ModelVisual3D.Transform>

            <ModelVisual3D.Content>

              <GeometryModel3D>

                <GeometryModel3D.Geometry>

                  <MeshGeometry3D TriangleIndices    = "0,1,2     2,3,0 

                                                4,7,6     6,5,4 

                                                      8,11,10   10,9,8 

                                                      12,13,14  14,15,12 

                                                      16,17,18  18,19,16

                                                      20,23,22  22,21,20"

        Positions          = "-1,-1,1   -1,-1,-1  1,-1,-1  1,-1,1

                                    -1,1,1    -1,1,-1   1,1,-1   1,1,1

                                    -1,-1,1   -1,1,1    1,1,1    1,-1,1

                                    -1,-1,-1  -1,1,-1   1,1,-1   1,-1,-1

                                    -1,-1,1   -1,1,1   -1,1,-1  -1,-1,-1

                                    1,-1,1    1,1,1    1,1,-1   1,-1,-1" />

                </GeometryModel3D.Geometry>

                <GeometryModel3D.Material>

                  <DiffuseMaterial>

                    <DiffuseMaterial.Brush>

                      <SolidColorBrush Color="Green" />

                    </DiffuseMaterial.Brush>

                  </DiffuseMaterial>

                </GeometryModel3D.Material>

              </GeometryModel3D>

            </