سؤال

إذا وضعت Viewport3D داخل القماش الخاص بي ، لم يعد مرئيًا. إذا قمت بإزالة القماش ، فإن ViewPort3D مرئي مرة أخرى. ماذا أفعل خطأ؟

          <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>
هل كانت مفيدة؟

المحلول

أعتقد أن Viewport3D سينتهي في الركن الأيسر العلوي من القماش بعرض وارتفاع 0 لأن اللوحة القماشية لا تمتد أبدًا أطفالها. حاول إضافة canvas.left و canvas.top عند تحديد موقع الاختيار الخاص بك ثم إضافة العرض والارتفاع لـ ViewPort3D. إذا كنت تريد أن تملأ ViewPort3D دائمًا المساحة المتاحة ، فإن القماش هو الطريقة الخاطئة للذهاب.

<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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top