您的位置:首页 > 编程语言

Windows Presentation Foundation (WPF) 3D 教程(三) ----从下面的代码开始

2010-04-20 18:03 696 查看
假设你已经对如何使用XAML创建一个基本的WPF用户界面有了基本的理解。那么让我们用VS.net 2005来创建一个新的wpf程序。下面的代码到app程序中创建一个简单的布局,用panel用于Buttons,Viewport3D用于显示我们的3D任务。

<Grid>
<DockPanel
Width="Auto"
VerticalAlignment="Stretch"
Height="Auto"
HorizontalAlignment="Stretch"
Grid.ColumnSpan="1"
Grid.Column="0"
Grid.Row="0"
Margin="0,0,0,0"
Grid.RowSpan="1">
<StackPanel>
<StackPanel.Background>
<LinearGradientBrush>
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="DarkKhaki" Offset=".3"/>
<GradientStop Color="DarkKhaki" Offset=".7"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</StackPanel.Background>
<StackPanel Margin="10">
<Button
Name="simpleButton"
Click="simpleButtonClick">Simple</Button>
</StackPanel>
</StackPanel>
<Viewport3D Name="mainViewport" ClipToBounds="True">
<Viewport3D.Camera>
<PerspectiveCamera
FarPlaneDistance="100"
LookDirection="-11,-10,-9"
UpDirection="0,1,0"
NearPlaneDistance="1"
Position="11,10,9"
FieldOfView="70" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight
Color="White"
Direction="-2,-3,-1" />
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</DockPanel>
</Grid>


从根本上讲,WPF中所有的3D任务都发生在Viewport3D 控件中,那就是我们将要添加我们的3D模型代码的地方。注意到一个PerspectiveCamera 已经添加到了Viewport3D里面,照相机允许我们从用户的视角“看”这个模型里面都有什么。注意:照相机是在模型中点{0,0,0}处看的。

这个模型当然也包含了一个DirectionalLight 光源,因此我们可以在模型中查看东西了。

鼓励你改变照相机的LookDirectionPosition 当你浏览这些例子的时候,本教程中的截图不一定如上的XMAL中使用了LookDirection and Position 的值。

以上的XAML代码中有个叫做simpleButton的Button控件,因此我们需要截获它的Click事件,在代码文件中添加一个消息响应函数simpleButtonClick 。
private void simpleButtonClick(object sender, RoutedEventArgs e)
{
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: