1

以下のコードを使用して 3D オブジェクトをレンダリングしようとしています。しかし、アプリケーションを実行しても何も表示されません。空白のようです。何か不足していますか?

<Page x:Class="SampleWpfApplication.DemoPage3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DemoPage3" xmlns:my="clr-namespace:SampleWpfApplication">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="126*" />
        <RowDefinition Height="126*" />
        <RowDefinition Height="66" />
    </Grid.RowDefinitions>
    <Viewport3D x:Name="theView3D">
        <Viewport3D.Camera>
            <PerspectiveCamera Position="6,6,6" LookDirection="-4,-4,-4"
UpDirection="0,1,0" />
        </Viewport3D.Camera>         
        <ModelVisual3D x:Name="theModel">
            <ModelVisual3D.Content>
                <Model3DGroup>
                    <GeometryModel3D x:Name="theGeometry">
                        <GeometryModel3D.Geometry>
                            <MeshGeometry3D Positions="0,1,0 1,-1,1 -1,-1,1 1,-1,-1 -1,-1,-1"
        Normals="0,1,0 -1,0,1 1,0,1 -1,0,-1 1,0,-1"
        TriangleIndices="0,2,1 0,3,1 0,3,4 0,2,4" />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                            <DiffuseMaterial>
                                <DiffuseMaterial.Brush>
                                    <SolidColorBrush Color="Red" Opacity="0.9"/>
                                </DiffuseMaterial.Brush>
                            </DiffuseMaterial>
                        </GeometryModel3D.Material>
                        <GeometryModel3D.BackMaterial>
                            <DiffuseMaterial>
                                <DiffuseMaterial.Brush>
                                    <SolidColorBrush Color="Green" Opacity="0.9"/>
                                </DiffuseMaterial.Brush>
                            </DiffuseMaterial>
                        </GeometryModel3D.BackMaterial>
                    </GeometryModel3D>
                </Model3DGroup>
            </ModelVisual3D.Content>
        </ModelVisual3D>
        <ModelVisual3D>
            <ModelVisual3D.Content>
                <Model3DGroup>
                    <DirectionalLight Direction="0,-5,-2" />
                    <DirectionalLight Direction="3,2,2" />
                    <GeometryModel3D x:Name="theGeometry2">
                        <GeometryModel3D.Transform>
                            <ScaleTransform3D ScaleX="2" ScaleY="2" ScaleZ="2"></ScaleTransform3D>
                        </GeometryModel3D.Transform>
                        <GeometryModel3D.Geometry>
                            <MeshGeometry3D Positions="0,1,0 1,-1,1 -1,-1,1 1,-1,-1 -1,-1,-1"
        Normals="0,1,0 -1,0,1 1,0,1 -1,0,-1 1,0,-1"
        TriangleIndices="0,2,1 0,3,1 0,3,4 0,2,4" />
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                            <DiffuseMaterial>
                                <DiffuseMaterial.Brush>
                                    <SolidColorBrush Color="#7FB0C4DE" Opacity="0.9"/>
                                </DiffuseMaterial.Brush>
                            </DiffuseMaterial>
                        </GeometryModel3D.Material>
                        <GeometryModel3D.BackMaterial>
                            <DiffuseMaterial>
                                <DiffuseMaterial.Brush>
                                    <SolidColorBrush Color="#7FB0C4DE" Opacity="0.9"/>
                                </DiffuseMaterial.Brush>
                            </DiffuseMaterial>
                        </GeometryModel3D.BackMaterial>
                    </GeometryModel3D>
                </Model3DGroup>
            </ModelVisual3D.Content>
        </ModelVisual3D>
    </Viewport3D>       
</Grid>
</Page>
4

2 に答える 2

2

Kaxamlでうまく表示されるようです。

おそらく、別のマシンを試すか、Kaxaml を使用して、結果が得られるかどうかを確認する必要があります。この時点で、それはいくつもの可能性があります。

編集:をコピーしていないことに気付きましたGrid.RowDefinitions。それらを追加すると、ビューポートがクリップされます。それらを削除すると、機能しますか?

于 2010-10-08T05:08:28.963 に答える
1

Viewport3D を WPF アプリケーションでレンダリングしようとしましたが、正常にレンダリングされました。ピラミッド メッシュが表示されます。

上記のコードから、ページの高さと幅を定義していないため、空白の画面が表示されます。

これがあなたのページに対する私の解決策です(次のようにページの高さと幅のプロパティを追加してください):

<Page x:Class="SampleWpfApplication.DemoPage3"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="300"
    Title="DemoPage3" xmlns:my="clr-namespace:SampleWpfApplication">
于 2013-11-19T07:34:45.360 に答える