2012-10-07 13 views
9

प्रस्तुत नहीं किया गया है मेरे पास एक WPF एप्लिकेशन है जिसमें मुख्य विंडो है। उसमें मेरे पास एक फ्रेम है, फ्रेम सामग्री एक पृष्ठ है।3 डी ऑब्जेक्ट

अब पेज में 4 viewport3D कि Viewport2DVisual3D होते हैं और उस में मैं छवि तत्व है।

समस्या: कुछ पीसी पर मेरा एप्लिकेशन अच्छी तरह से चलता है लेकिन कुछ पीसी पर मेरा एप्लिकेशन viewport3d प्रस्तुत नहीं करता है या यह फ्रेम प्रस्तुत नहीं करता है। डुनो लेकिन यह मुख्य खिड़की में कुछ भी नहीं दिखाता है।

समस्या एक एसर लैपटॉप Model पर होता है।

गाया: True Image

गाया नहीं: enter image description here

संपादित करें: यह समस्या फिर से उस समय हुआ जब मैं एक ग्रिड में फ्रेम रखा। (मैं इस पृष्ठ को एक फ्रेम में दिखाता हूं, यह फ्रेम मेरी खिड़की की मुख्य सामग्री है: जब मैं फ्रेम को ग्रिड में रखता हूं तो यह ऑब्जेक्ट नहीं दिखाता) लगता है कि यह साझा ग्राफिक्स के साथ लैपटॉप पर होता है

संपादित करें 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

केवल जिन चीजों के साथ मैं आ सकता हूं वे निम्नलिखित हैं: 1. लैपटॉप पर 3 डी त्वरण सेटिंग्स को बदलने की जरूरत है। 2. लैपटॉप पर Viewport2DVisual3D स्थापित नहीं है। – WozzeC

+0

आप जिस WPF का उपयोग कर रहे हैं उसका संस्करण क्या है और आप कुछ कोड प्रदान कर सकते हैं ताकि हम देख सकें कि आप दृश्य को कैसे बना रहे हैं। – Sam

+0

मैं कोड जोड़ा गया। मैं .NET 4 का उपयोग कर रहा हूँ। और Viewport2DVisual3D कैसे स्थापित करें। मुझे क्या सेटिंग करना चाहिए? –

उत्तर

1

आप OpenGL या DirectX3D का उपयोग कर रहे हैं, तो या देखते हैं कि लैपटॉप जो प्रस्तुत नहीं हो रही है, कुछ लापता प्लगइन्स DirectX 3 डी स्थापित नहीं किया जाएगा की तरह होगा ओपन आप के लिए यह दो 3 डी प्रतिपादन उपकरण कोशिश कर सकते हैं वही .. मैंने पहले यह कोशिश की थी कि मैंने एक ग्राफ प्रोग्राम बनाया था, जिसमें एक ही समस्या थी, लेकिन जब मैंने OPENGL & डायरेक्टएक्स 3 डी स्थापित किया तो यह ठीक काम कर रहा था!

+0

स्टैक ओवरव्लो में आपका स्वागत है। सवालों का जवाब देते समय कृपया अपने उत्तर को प्रमाणित करने वाली संदर्भ सामग्री के लिंक पोस्ट करने पर विचार करें। उदाहरण के लिए आप एक माइक्रोसॉफ्ट पेज का हवाला देते हैं जो बताता है कि व्यूपोर्ट 3 डी ओपनजीएल और/या डायरेक्ट 3 डी पर निर्भर करता है। – pseudocoder

+0

क्षमा करें ..! उस समय मैं जल्दी में था इसलिए मैं तेज़ी से जवाब देता हूं, इसलिए एक लिंक जोड़ने के लिए भूल गया, लेकिन अगली बार मुझे एक लिंक जोड़ना निश्चित है ..! धन्यवाद –

+0

ऐसा लगता है कि आपको इससे पहले समस्या थी इसलिए मैं इसे वोट देता हूं लेकिन जब मैं उस क्लाइंट को फिर से देखता हूं तो मैं इसे बाद में कोशिश करूंगा। –