ViewPort3D ModelVisuals3d غير مرئي عند قماش داخلي
-
28-09-2019 - |
سؤال
إذا وضعت 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>
لا تنتمي إلى StackOverflow