首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF 3D中两个ViewPort3D对像样否可以重叠呢

2012-12-23 
WPF 3D中两个ViewPort3D对象是否可以重叠呢?代码如下面所示: Window x:ClassInstant_Swipe.MainWindow

WPF 3D中两个ViewPort3D对象是否可以重叠呢?
代码如下面所示:

 <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的右下角。但是现在第二个始终看不到。

请教各位大侠,上面的这种想法能够实现吗,如果能够能够实现我的代码问题又出在哪里呢?


[解决办法]
我不玩WPF就是害怕标记代码,技术上帮不了你,帮你顶下帖子

[解决办法]
你可以建个用户控件啊!
[解决办法]
绘图方面一直是难点!!!

热点排行