2016-10-20 10 views
0

UWPにSystem.Window.Media.Model3DGroupクラスの同等/置換がありますか?何度も検索して見つけられません。UWPにSystem.Window.Media.Model3DGroupクラスの同等/置換がありますか?

これは私がUWPで複製するサンプルWPFコードです:注意すべき

 <Model3DGroup.Children> 

      <!-- Group Child 0 --> 

      <Model3DGroup > 
      <Model3DGroup.Transform> 
       <Transform3DGroup> 
       <Transform3DGroup.Children> 
        <Transform3DCollection > 
        <ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1" /> 
        <RotateTransform3D > 
         <RotateTransform3D.Rotation > 
         <AxisAngleRotation3D x:Name="myRotate" Axis="1 0 0" Angle="0" /> 
         </RotateTransform3D.Rotation> 
        </RotateTransform3D> 
        <TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0" /> 
        </Transform3DCollection> 
       </Transform3DGroup.Children> 
       </Transform3DGroup> 
      </Model3DGroup.Transform> 

      <Model3DGroup.Children> 

           <!-- Child 0 --> 
           <!-- BACK --> 
           <GeometryModel3D Transform="{StaticResource CubeMeshTransform2}"> 
            <GeometryModel3D.Geometry> 
             <MeshGeometry3D 

             TriangleIndices="  0,1,2 
                   3,4,5 " 
             TextureCoordinates=" 1,0  1,1  0,1 
                   0,1  0,0  1,0" 
             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> 
              <DiffuseMaterial.Brush> 
               <VisualBrush> 
                <VisualBrush.Visual> 
                 <MediaElement Name="media0" IsMuted="True" LoadedBehavior="Manual" MediaEnded="RestartMedia"> 

                 </MediaElement> 
                </VisualBrush.Visual> 
               </VisualBrush> 
              </DiffuseMaterial.Brush> 
             </DiffuseMaterial> 
            </GeometryModel3D.Material> 
           </GeometryModel3D> 
           <!-- Front --> 
           <GeometryModel3D Transform="{StaticResource CubeMeshTransform2}"> 
            <GeometryModel3D.Geometry> 
             <MeshGeometry3D 

             TextureCoordinates="0,1 1,1 1,0 
              1,0 0,0 0,1 
                  " 
             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> 
              <DiffuseMaterial.Brush> 
               <VisualBrush> 
                <VisualBrush.Visual> 
                 <MediaElement Name="media3" IsMuted="True" LoadedBehavior="Manual" MediaEnded="RestartMedia"> 
                 </MediaElement> 
                </VisualBrush.Visual> 
               </VisualBrush> 
              </DiffuseMaterial.Brush> 
             </DiffuseMaterial> 
            </GeometryModel3D.Material> 
           </GeometryModel3D> 
           <!-- Bottom --> 
           <GeometryModel3D Transform="{StaticResource CubeMeshTransform2}"> 
            <GeometryModel3D.Geometry> 
             <MeshGeometry3D 

             TextureCoordinates="1,1 0,1 0,0 0,0 1,0 1,1 " 
             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> 
              <DiffuseMaterial.Brush> 
               <VisualBrush> 
                <VisualBrush.Visual> 
                 <MediaElement IsMuted="True" LoadedBehavior="Manual" MediaEnded="RestartMedia" Name="media4"> 
                 </MediaElement> 
                </VisualBrush.Visual> 
               </VisualBrush> 
              </DiffuseMaterial.Brush> 
             </DiffuseMaterial> 
            </GeometryModel3D.Material> 
           </GeometryModel3D> 
           <!-- Right --> 
           <GeometryModel3D Transform="{StaticResource CubeMeshTransform2}"> 
            <GeometryModel3D.Geometry> 
             <MeshGeometry3D 

             TextureCoordinates="0,1 0,0 1,0 1,0 1,1 0,1" 
             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> 
              <DiffuseMaterial.Brush> 
               <VisualBrush> 
                <VisualBrush.Visual> 
                 <MediaElement IsMuted="True" Name="media5" LoadedBehavior="Manual" MediaEnded="RestartMedia">  
                  </MediaElement> 
                </VisualBrush.Visual> 
               </VisualBrush> 
              </DiffuseMaterial.Brush> 
             </DiffuseMaterial> 
            </GeometryModel3D.Material> 
           </GeometryModel3D> 
           <!-- Top --> 
           <GeometryModel3D Transform="{StaticResource CubeMeshTransform2}"> 
            <GeometryModel3D.Geometry> 
             <MeshGeometry3D 

             TextureCoordinates=" 0,0 1,0 1,1 1,1 0,1 0,0" 
             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> 
              <DiffuseMaterial.Brush> 
               <VisualBrush> 
                <VisualBrush.Visual> 
                 <MediaElement IsMuted="True" Name="media6" LoadedBehavior="Manual" MediaEnded="RestartMedia"> 

                 </MediaElement> 
                </VisualBrush.Visual> 
               </VisualBrush> 
              </DiffuseMaterial.Brush> 
             </DiffuseMaterial> 
            </GeometryModel3D.Material> 
           </GeometryModel3D> 
           <!-- left --> 
           <GeometryModel3D Transform="{StaticResource CubeMeshTransform2}"> 
            <GeometryModel3D.Geometry> 
             <MeshGeometry3D 
     TextureCoordinates="1,0 1,1 0,1 0,1 0,0 1,0 " 
     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> 
              <DiffuseMaterial.Brush> 
               <VisualBrush> 
                <VisualBrush.Visual> 
                 <MediaElement IsMuted="True" Name="media2" LoadedBehavior="Manual" MediaEnded="RestartMedia"> 

                 </MediaElement> 
                </VisualBrush.Visual> 
               </VisualBrush> 
              </DiffuseMaterial.Brush> 
             </DiffuseMaterial> 
            </GeometryModel3D.Material> 
           </GeometryModel3D> 
          </Model3DGroup.Children> 
      </Model3DGroup> 


      <Model3DGroup> 
      <Model3DGroup.Children> 
       <AmbientLight Color="#ffcccccc"/> 
       <DirectionalLight Color="LightGray" Direction="-1,-1,-1" /> 
      </Model3DGroup.Children> 
      </Model3DGroup> 
     </Model3DGroup.Children> 

重要なことは、立方体の各側面を代表する6つのメディア要素のコントロールが()があるということです。

答えて

0

単純にuwpのどのクラスがwpfのSystem.Window.Media.Model3DGroupクラスに相当する/置き換えられていると言うことはできません。 wpfのModel3DGroupは、複数の3Dモデルを1つのユニットとして使用するためのものです。 1つのModelVisual3DModel3Dの1つしか持つことができないので、Model3DGroupを使用してModel3Dオブジェクトを構成して単一のモデルを作成し、ModelVisual3D要素のコンテンツとして設定することができます。

しかし、uwpでは、Modelvisual3D,Model3D、さらにViewport3Dはすべてサポートされていません。したがって、Mode3DGroupクラスは必要ありません。

実際にあなたのアプリで使用するクラスは、あなたの要件によって異なります。例えば。実装したい機能例えば、簡単なデモ次のようにModel3DGroupが含まれているWPFには約Rectangle回転:

<Viewport3D Name="myViewport"> 
    <Viewport3D.Camera> 
       <PerspectiveCamera 
        FarPlaneDistance="20" 
        FieldOfView="45" 
        LookDirection="5,-2,-3" 
        NearPlaneDistance="0" 
        Position="-5,2,3" 
        UpDirection="0,1,0" /> 
      </Viewport3D.Camera> 
    <ModelVisual3D x:Name="topModelVisual3D"> 
     <ModelVisual3D.Children> 
      <ModelVisual3D x:Name="children1"> 
       <ModelVisual3D.Content> 
        <Model3DGroup>       
         <GeometryModel3D Geometry="{StaticResource myTeapot}"> 
          <GeometryModel3D.Material> 
           <DiffuseMaterial> 
            <DiffuseMaterial.Brush> 
             <SolidColorBrush Opacity="1.0" Color="Pink" /> 
            </DiffuseMaterial.Brush> 
           </DiffuseMaterial> 
          </GeometryModel3D.Material> 
          <GeometryModel3D.Transform> 
             <RotateTransform3D> 
              <RotateTransform3D.Rotation> 
               <AxisAngleRotation3D 
               x:Name="myAngleRotation" 
               Angle="1" 
               Axis="0,3,0" /> 
              </RotateTransform3D.Rotation> 
             </RotateTransform3D> 
            </GeometryModel3D.Transform> 
         </GeometryModel3D> 
        </Model3DGroup> 
       </ModelVisual3D.Content> 
      </ModelVisual3D> 
     </ModelVisual3D.Children> 
    </ModelVisual3D> 
    <Viewport3D.Triggers> 
     <EventTrigger RoutedEvent="Viewport3D.Loaded"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimation 
         Duration="0:0:10" 
         From="0" 
         RepeatBehavior="Forever" 
         Storyboard.TargetName="myAngleRotation" 
         Storyboard.TargetProperty="Angle" 
         To="360" /> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Viewport3D.Triggers> 
</Viewport3D> 

そして、我々はコードを以下によるUWPに同様の効果を持つことができます。

<Grid x:Name="ImageGrid" Grid.Row="1"> 
    <Grid.Projection> 
     <PlaneProjection /> 
    </Grid.Projection> 
    <Rectangle 
     x:Name="ImageBlock" 
     Width="100" 
     HorizontalAlignment="Center" 
     Fill="Black"   
     Stretch="Uniform" Height="100"> 
     <Rectangle.Triggers> 
      <EventTrigger RoutedEvent="Image.Loaded"> 
       <BeginStoryboard> 
        <Storyboard x:Name="SpinAnimation"> 
         <DoubleAnimation 
          Duration="0:0:5" 
          From="360" 
          RepeatBehavior="Forever" 
          Storyboard.TargetName="ImageGrid" 
          Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" 
          To="0" /> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Rectangle.Triggers> 
    </Rectangle> 
</Grid> 

私はあなたが必要とするガイドがUWPにDraw shapesAnimationだと思います。複雑な3DグラフィックについてはDirect3Dを参照してください。

+0

UWPに複数の3Dオブジェクトを(キューブのように)表示する方法があるかどうかを尋ねていますか? – user111

+0

@ user111あなたはuwpでここで何を意味するのでしょうか?キューブそれは1つの3Dオブジェクトです、そうですか? uwpには 'GeometryModel3D'のようなオブジェクトはありません。例えば。 'mutiple 3D objects'ショーを含むuwp xamlページの例を挙げてください。 –

+0

したがって、私が複製しようとしているWPFの例では、キューブは6つの異なるGeometryModel3Dオブジェクトで、キューブの6つの辺をそれぞれ表します。 私はより詳細な要件で私の質問を編集しました – user111

関連する問題