代码如下面所示: <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的右下角。但是现在第二个始终看不到。请教各位大侠,上面的这种想法能够实现吗,如果能够能够实现我的代码问题又出在哪里呢?

解决方案 »

  1.   

    上面代码关键部分标记了颜色却没有显示出来,重新标记一下:
                <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">
      

  2.   

    我不玩WPF就是害怕标记代码,技术上帮不了你,帮你顶下帖子
      

  3.   

    谢谢您顶,其实标记玩熟了还是很爽的~~问题已经解决了,超级愚蠢的错误第二个ViewPort3D超出了屏幕范围,它是相对于第二个Canvas的。郁闷至极
    <Viewport3D Canvas.Left="1069" Canvas.Top="446"