WPF 3D中两个ViewPort3D对象是否可以重叠呢?

danxuezx 2012-10-31 11:37:20
代码如下面所示:

 <Window x:Class="Instant_Swipe.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="768"
Width="1366" >

<Grid >
<Canvas Name="m_LeftCanvas" MouseDown="OnLeftCanvasMouseDown" Height="768" Width="642" Margin="0,0,0,0"
HorizontalAlignment="Left" VerticalAlignment="Top">
</Canvas>
<Canvas Height="768" Width="638" Margin="642,0,0,0">
<Viewport3D Name="mainViewport" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,0,0"
Opacity="1" Height="768" Width="638" ClipToBounds="False">
</Viewport3D>

<Viewport3D Canvas.Left="1069" Canvas.Top="446" Canvas.Right="1275" Canvas.Bottom="687" Width="206" Height="241">

<Viewport3D.Camera>
<PerspectiveCamera
Position="0,0,15"
LookDirection="0,0,-15"
UpDirection="0,1,0"
/>
</Viewport3D.Camera>

<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="Red" Direction="10,10,10" />
</ModelVisual3D.Content>
</ModelVisual3D>

<Viewport2DVisual3D>
<Viewport2DVisual3D.Geometry>
<MeshGeometry3D
Positions="-100,-100,1 100,-100,1 100,100,1 -100,100,1"
TriangleIndices="0 1 2 2 3 0"
Normals="0,0,1 0,0,1 0,0,1 0,0,1"
TextureCoordinates="0,1 1,1 1,0 0,0" />

</Viewport2DVisual3D.Geometry>

<Viewport2DVisual3D.Material>
<DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" >

</DiffuseMaterial>
</Viewport2DVisual3D.Material>

<Viewport2DVisual3D.Visual>
<Border BorderBrush="Blue" BorderThickness="1">
<StackPanel Orientation="Vertical" VerticalAlignment="Top">
<Slider Orientation="Horizontal" Background="red" Width="100" Height="20"/>

</StackPanel>
</Border>
</Viewport2DVisual3D.Visual>
</Viewport2DVisual3D>
</Viewport3D>
</Canvas>

<Canvas Height="768" Width="86" Margin="1367,0,0,0">
</Canvas>
</Grid>
</Window>


在上面代码中第二个canvas中包含两个ViewPort3D,第一个通过后台代码向其中添加了一些3d元素,它其实是占据整个Canvas空间的,现在我想在这个空间中挖一小块出来再放一个Viewport3D,最后想要的效果是想让第二个Viewport3D上的内容覆盖在第一个Viewport3D的右下角。但是现在第二个始终看不到。

请教各位大侠,上面的这种想法能够实现吗,如果能够能够实现我的代码问题又出在哪里呢?
...全文
228 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
E次奥 2012-12-14
  • 打赏
  • 举报
回复
绘图方面一直是难点!!!
Lee_20121128 2012-12-14
  • 打赏
  • 举报
回复
你可以建个用户控件啊!
danxuezx 2012-10-31
  • 打赏
  • 举报
回复
上面代码关键部分标记了颜色却没有显示出来,重新标记一下:


<Viewport3D Name="mainViewport" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,0,0"
Opacity="1" Height="768" Width="638" ClipToBounds="False">
</Viewport3D>

<Viewport3D Canvas.Left="1069" Canvas.Top="446" Canvas.Right="1275" Canvas.Bottom="687" Width="206" Height="241">
danxuezx 2012-10-31
  • 打赏
  • 举报
回复
谢谢您顶,其实标记玩熟了还是很爽的~~

问题已经解决了,超级愚蠢的错误。。。

第二个ViewPort3D超出了屏幕范围,它是相对于第二个Canvas的。郁闷至极。。。
<Viewport3D Canvas.Left="1069" Canvas.Top="446"
zmidl 2012-10-31
  • 打赏
  • 举报
回复
我不玩WPF就是害怕标记代码,技术上帮不了你,帮你顶下帖子
danxuezx 2012-10-31
  • 打赏
  • 举报
回复
沉了。。。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧