2012-10-07 41 views
9

Tôi có một ứng dụng WPF có cửa sổ chính. Trong đó tôi có một khung, nội dung khung là một trang.đối tượng 3D không được hiển thị

Bây giờ trong trang là 4 khung nhìn3D chứa Viewport2DVisual3D và trong đó tôi có phần tử hình ảnh.

Vấn đề: trên một số PC ứng dụng của tôi chạy tốt nhưng trên một số máy tính, ứng dụng của tôi không hiển thị viewport3d hoặc không hiển thị khung. Dunno nhưng nó không hiển thị bất cứ điều gì trong cửa sổ chính.

Sự cố xảy ra trên máy tính xách tay Acer Model.

hiển thị: True Image

Không hiển thị: enter image description here

EDIT: Vấn đề này xảy ra một lần nữa khi tôi đặt khung trong một mạng lưới. (Tôi hiển thị trang này trong một khung, khung đó là nội dung chính của cửa sổ của tôi: khi tôi đặt khung trong lưới mà nó không hiển thị đối tượng) Dường như Xuất hiện trên máy tính xách tay với đồ họa được chia sẻ

EDIT 2:

<Page x:Class="MainPage" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       Loaded="Page_Loaded_1" 
     x:Name="myMainPage" FlowDirection="RightToLeft" > 

    <Page.Resources> 

     <Style TargetType="ContentControl" x:Key="MenuItemsStyle"> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate> 

         <Viewport3D VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ClipToBounds="False"> 
          <Viewport3D.Camera> 
           <PerspectiveCamera x:Name="myCam" FieldOfView="90" Position="{Binding ElementName=myMainWindow, Path=CameraHeight}" NearPlaneDistance="1" FarPlaneDistance="10"/> 
          </Viewport3D.Camera> 

          <ModelVisual3D> 
           <ModelVisual3D.Content> 
            <Model3DGroup> 
             <DirectionalLight Color="#FFFFFFFF" Direction="0,0,-1"/> 
            </Model3DGroup> 
           </ModelVisual3D.Content> 
          </ModelVisual3D> 

          <Viewport2DVisual3D x:Name="V2d3d"> 

           <Viewport2DVisual3D.Transform> 
            <Transform3DGroup> 
             <RotateTransform3D > 
              <RotateTransform3D.Rotation> 
               <AxisAngleRotation3D Axis="0,1,0" Angle="0" x:Name="aar3D"/> 
              </RotateTransform3D.Rotation> 
             </RotateTransform3D> 
            </Transform3DGroup> 
           </Viewport2DVisual3D.Transform> 

           <Viewport2DVisual3D.Material> 
            <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/> 
           </Viewport2DVisual3D.Material> 
                   <Viewport2DVisual3D.Geometry> 
            <MeshGeometry3D Positions="{Binding ElementName=myMainWindow, Path=MeshPosions}" 
          TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/> 
           </Viewport2DVisual3D.Geometry> 
           <Border Name="mainBorder" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
            <Border.Style> 
             <Style TargetType="Border"> 
              <Setter Property="BorderThickness" Value="1.2"/> 
              <Setter Property="Background" > 
               <Setter.Value> 
                <SolidColorBrush Color="Transparent"/> 
               </Setter.Value> 
              </Setter> 
              <Setter Property="BorderBrush" > 
               <Setter.Value> 
                <SolidColorBrush Color="Transparent"/> 
               </Setter.Value> 
              </Setter> 
                       </Style> 
            </Border.Style> 
            <ContentPresenter VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
                 Content="{TemplateBinding ContentControl.Content}"> 
             <ContentPresenter.Triggers> 
              <EventTrigger RoutedEvent="ContentPresenter.MouseLeftButtonDown"> 
               // Axis Animation 
              </EventTrigger> 
             </ContentPresenter.Triggers> 
            </ContentPresenter> 
           </Border> 
          </Viewport2DVisual3D> 
         </Viewport3D> 

        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <EventTrigger RoutedEvent="ContentControl.MouseLeftButtonDown" > 
        //Axis Animation 
       </EventTrigger> 
       <EventTrigger RoutedEvent="ContentControl.MouseEnter"> 
        //ScaleAnimation 
           </EventTrigger> 
       <EventTrigger RoutedEvent="ContentControl.MouseLeave"> 
        //ScaleAnimation 
       </EventTrigger> 
      </Style.Triggers> 
     </Style> 

    </Page.Resources> 

    <Page.Triggers> 
     <EventTrigger RoutedEvent="Loaded"> 
      //Load Object Scale And Fade In 
     </EventTrigger> 
    </Page.Triggers> 

    <Grid Name="MainGrid"> 


       <Canvas Name="MainCanvas" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" FlowDirection="LeftToRight"> 
      <ContentControl Opacity="0" Name="MenuItem1" Style="{StaticResource MenuItemsStyle}" 
          MouseDown="MenuItem1_MouseDown" Panel.ZIndex="1" > 
       <Image Source="/IsargaranProject;component/Images/isargari.jpg"/> 
       <ContentControl.RenderTransform> 
        <ScaleTransform ScaleX="0.7" ScaleY="0.7" x:Name="MenuItem1ST"/> 
       </ContentControl.RenderTransform> 
      </ContentControl> 
     </Canvas> 

    </Grid> 
</Page> 
+2

Chỉ những thứ tôi có thể đưa ra là: 1. Thiết lập tăng tốc 3D trên máy tính xách tay cần phải được thay đổi. 2. Viewport2DVisual3D không được cài đặt trên máy tính xách tay. – WozzeC

+0

Bạn đang sử dụng phiên bản WPF nào và bạn có thể cung cấp một số mã để chúng tôi có thể xem cách bạn đang xây dựng chế độ xem hay không. – Sam

+0

Tôi đã thêm mã. Im Sử dụng .net 4. Và cách cài đặt Viewport2DVisual3D. tôi phải làm gì? –

Trả lời

1

Nếu bạn đang sử dụng OpenGL hoặc DirectX3D, sau đó thấy rằng các máy tính xách tay mà không hoàn trả, sẽ có một số plugin còn thiếu như DirectX 3D sẽ không được cài đặt hoặc OpenGL bạn có thể thử này hai công cụ Rendering 3D cho cùng .. Tôi đã cố gắng này trong quá khứ tôi đã thực hiện một chương trình đồ họa nó đã có cùng một vấn đề, nhưng khi tôi cài đặt OPENGL & DirectX3D nó đã làm việc tốt!

+0

Chào mừng bạn đến với StackOverflow. Khi trả lời câu hỏi, vui lòng xem xét đăng liên kết tới tài liệu tham khảo để giải thích câu trả lời của bạn. Ví dụ, bạn có thể trích dẫn một trang Microsoft cho biết rằng viewport3d dựa trên OpenGL và/hoặc Direct3D. – pseudocoder

+0

Xin lỗi ..! vào thời điểm đó tôi đã vội vàng vì vậy tôi trả lời nhanh, vì vậy quên thêm một liên kết, nhưng thời gian tới tôi chắc chắn sẽ thêm một liên kết ..! Cảm ơn –

+0

dường như bạn đã có vấn đề này trước khi vì vậy tôi bỏ phiếu nó lên nhưng tôi sẽ thử nó sau khi tôi thấy rằng khách hàng một lần nữa. –

Các vấn đề liên quan