﻿<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:annot="clr-namespace:System.Windows.Annotations;assembly=PresentationFramework"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <Page.Resources>
    <Storyboard
      x:Key="leftSpin"
      RepeatBehavior="Forever">
      <DoubleAnimation
        BeginTime="00:00:00"
        Duration="00:00:02"
        Storyboard.TargetName="leftRotate"
        Storyboard.TargetProperty="Angle"
        From="0"
        To="360" />
    </Storyboard>
    <Storyboard
      x:Key="rightSpin"
      RepeatBehavior="Forever">
      <DoubleAnimation
        BeginTime="00:00:00"
        Duration="00:00:02"
        Storyboard.TargetName="rightRotate"
        Storyboard.TargetProperty="Angle"
        From="0"
        To="360" />
    </Storyboard>
    <Storyboard
      x:Key="uiSpin"
      RepeatBehavior="Forever">
      <DoubleAnimation
        BeginTime="00:00:00"
        Duration="00:00:5"
        Storyboard.TargetName="uiRotate"
        Storyboard.TargetProperty="Angle"
        From="-45"
        To="+45"
        AutoReverse="True"/>
    </Storyboard>
  </Page.Resources>
  <Page.Triggers>
    <EventTrigger
      RoutedEvent="FrameworkElement.Loaded">
      <BeginStoryboard
        Storyboard="{StaticResource leftSpin}" />
      <BeginStoryboard
        Storyboard="{StaticResource rightSpin}" />
      <BeginStoryboard
        Storyboard="{StaticResource uiSpin}" />
    </EventTrigger>
  </Page.Triggers>

  <FlowDocumentReader>
    <FlowDocument
      FontFamily="Calibri"
      FontSize="18">
      <Section>
        <Paragraph
          FontSize="24"
          FontWeight="Bold">
          Documents in WPF

        </Paragraph>
        <Paragraph>
          This is a document marked up in

          <Bold>
            XAML

          </Bold> and displayed by WPF using vector-based graphics and hardware acceleration.

        </Paragraph>
        <BlockUIContainer>
          <Grid
            Background="Black">

            <Viewport3D Width="3in"
                        Height="3in">
              <Viewport3D.Camera>
                <PerspectiveCamera
                  x:Name="Camera"
                  FieldOfView="45"
                  FarPlaneDistance="100"
                  LookDirection="0,0,-5"
                  NearPlaneDistance="0.1"
                  Position="0,0,5"
                  UpDirection="0,1,0" />
              </Viewport3D.Camera>
              <ContainerUIElement3D>
                <ModelUIElement3D
                  x:Name="leftCube">
                  <ModelUIElement3D.Model>
                    <Model3DGroup>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="-0.5,-0.5,-0.5 -0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,-0.5,-0.5 -0.5,-0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF222222" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF444444" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="-0.5,-0.5,-0.5 0.5,-0.5,-0.5 0.5,-0.5,0.5 0.5,-0.5,0.5 -0.5,-0.5,0.5 -0.5,-0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF666666" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="0.5,-0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,0.5 0.5,0.5,0.5 0.5,-0.5,0.5 0.5,-0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF888888" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="0.5,0.5,-0.5 -0.5,0.5,-0.5 -0.5,0.5,0.5 -0.5,0.5,0.5 0.5,0.5,0.5 0.5,0.5,-0.5 -0.5,0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FFAAAAAA" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="1,2,0 3,0,2"
                            Positions="-0.5,-0.5,-0.5 -0.5,-0.5,0.5 -0.5,0.5,0.5 -0.5,0.5,-0.5" />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FFCCCCCC" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <AmbientLight
                        Color="#FFFFFFFF" />
                    </Model3DGroup>

                  </ModelUIElement3D.Model>
                  <ModelUIElement3D.Transform>
                    <Transform3DGroup>
                      <TranslateTransform3D
                        OffsetX="-1"
                        OffsetY="0"
                        OffsetZ="0" />
                      <ScaleTransform3D
                        ScaleX="1"
                        ScaleY="1"
                        ScaleZ="1" />
                      <RotateTransform3D>
                        <RotateTransform3D.Rotation>
                          <AxisAngleRotation3D
                            x:Name="leftRotate"
                            Axis="1,1,1"
                            Angle="0" />
                        </RotateTransform3D.Rotation>
                      </RotateTransform3D>
                    </Transform3DGroup>
                  </ModelUIElement3D.Transform>
                </ModelUIElement3D>
                <ModelUIElement3D
                  x:Name="rightCube">
                  <ModelUIElement3D.Model>
                    <Model3DGroup>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="-0.5,-0.5,-0.5 -0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,-0.5,-0.5 -0.5,-0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF222222" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF444444" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="-0.5,-0.5,-0.5 0.5,-0.5,-0.5 0.5,-0.5,0.5 0.5,-0.5,0.5 -0.5,-0.5,0.5 -0.5,-0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF666666" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="0.5,-0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,0.5 0.5,0.5,0.5 0.5,-0.5,0.5 0.5,-0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FF888888" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="0,1,2 3,4,5"
                            Positions="0.5,0.5,-0.5 -0.5,0.5,-0.5 -0.5,0.5,0.5 -0.5,0.5,0.5 0.5,0.5,0.5 0.5,0.5,-0.5 -0.5,0.5,-0.5 " />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FFAAAAAA" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                          <MeshGeometry3D
                            TriangleIndices="1,2,0 3,0,2"
                            Positions="-0.5,-0.5,-0.5 -0.5,-0.5,0.5 -0.5,0.5,0.5 -0.5,0.5,-0.5" />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                          <DiffuseMaterial
                            Brush="#FFCCCCCC" />
                        </GeometryModel3D.Material>
                      </GeometryModel3D>
                      <AmbientLight
                        Color="#FFFFFFFF" />
                    </Model3DGroup>

                  </ModelUIElement3D.Model>
                  <ModelUIElement3D.Transform>
                    <Transform3DGroup>
                      <TranslateTransform3D
                        OffsetX="1"
                        OffsetY="0"
                        OffsetZ="0" />
                      <ScaleTransform3D
                        ScaleX="1"
                        ScaleY="1"
                        ScaleZ="1" />
                      <RotateTransform3D>
                        <RotateTransform3D.Rotation>
                          <AxisAngleRotation3D
                            x:Name="rightRotate"
                            Axis="1,1,1"
                            Angle="0" />
                        </RotateTransform3D.Rotation>

                      </RotateTransform3D>
                    </Transform3DGroup>
                  </ModelUIElement3D.Transform>
                </ModelUIElement3D>
                <Viewport2DVisual3D>
                  <Viewport2DVisual3D.Geometry>
                    <MeshGeometry3D
                      TriangleIndices="0,1,2 3,4,5"
                      Positions="-1,-1,2 1,-1,2 1,1,2 1,1,2 -1,1,2 -1,-1,2 "
                      TextureCoordinates="0,1 1,1 1,0 1,0, 0,0 0,1" />
                  </Viewport2DVisual3D.Geometry>
                  <Viewport2DVisual3D.Transform>
                    <RotateTransform3D>
                      <RotateTransform3D.Rotation>
                        <AxisAngleRotation3D
                          x:Name="uiRotate"
                          Axis="0,1,0"
                          Angle="0" />
                      </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                  </Viewport2DVisual3D.Transform>
                  <Viewport2DVisual3D.Material>
                    <DiffuseMaterial
                      Viewport2DVisual3D.IsVisualHostMaterial="true"
                      Color="White"
                      Brush="Blue" />
                  </Viewport2DVisual3D.Material>
                  <Viewport2DVisual3D.Visual>
                    <Grid Opacity="0.5">

                      <Grid Width="192"
                            Height="192">
                        <Grid.RowDefinitions>
                          <RowDefinition Height="3*"/>
                          <RowDefinition />
                        </Grid.RowDefinitions>
                        <MediaElement Source="c:\users\mtaulty\desktop\liquid.wmv"
                                      Stretch="Fill"
                                      Margin="5"/>
                        <Button FontSize="24"
                                Content="Play"
                                Grid.Row="1"
                                Margin="5"/>
                      </Grid>

                    </Grid>
                  </Viewport2DVisual3D.Visual>
                </Viewport2DVisual3D>
              </ContainerUIElement3D>
            </Viewport3D>
          </Grid>
        </BlockUIContainer>
      </Section>
    </FlowDocument>
  </FlowDocumentReader>
</Page>
