2010-11-04 3 views
0

Если я ставлю viewport3D внутри Canvas, мой viewport3D больше не виден. Если я удалю Canvas, то Viewport3D снова будет виден. Что я делаю неправильно?Viewport3D ModelVisuals3D не видно, когда внутри Canvas

  <Canvas Width="900" Height="524"> 
      <Viewport3D Name="mainViewport" ClipToBounds="True" HitTestVisible="False"> 
         <Viewport3D.Camera> 
          <PerspectiveCamera 
           FarPlaneDistance="3500" 
           LookDirection="0,0,1" 
           UpDirection="0,1,0" 
           NearPlaneDistance="1" 
           Position="0,0,0" 
           FieldOfView="66" /> 
         </Viewport3D.Camera> 
         <ModelVisual3D> 
          <ModelVisual3D.Content> 
           <AmbientLight Color="White" /> 
          </ModelVisual3D.Content> 
         </ModelVisual3D> 
        </Viewport3D> 
      </Canvas> 

ответ

0

Я думаю, что Viewport3D закончится в верхнем левом углу холста с шириной и высотой 0, так как Canvas никогда не растягивает ее детей. Попробуйте добавить Canvas.Left и Canvas.Top в позицию вашего выбора, а затем добавьте ширину и высоту для вашего Viewport3D. Если вы хотите, чтобы ваш Viewport3D всегда заполнял доступное пространство, Canvas - неправильный путь.

<Canvas Width="900" Height="524"> 
    <Viewport3D Canvas.Left="100" 
       Canvas.Top="100" 
       Width="200" 
       Height="200" 
       Name="mainViewport" 
       ClipToBounds="True" 
       IsHitTestVisible="False"> 
     <Viewport3D.Camera> 
      <PerspectiveCamera 
         FarPlaneDistance="3500" 
         LookDirection="0,0,1" 
         UpDirection="0,1,0" 
         NearPlaneDistance="1" 
         Position="0,0,0" 
         FieldOfView="66" /> 
     </Viewport3D.Camera> 
     <ModelVisual3D> 
      <ModelVisual3D.Content> 
       <AmbientLight Color="White" /> 
      </ModelVisual3D.Content> 
     </ModelVisual3D> 
    </Viewport3D> 
</Canvas> 

 Смежные вопросы

  • Нет связанных вопросов^_^