1. Nuget安装 HelixToolkit
2. XAML中添加
<HelixToolkit:HelixViewport3D x:Name="viewPort3d" ShowFrameRate="True"
ZoomExtentsWhenLoaded="True"
ZoomAroundMouseDownPoint="True"
RotateAroundMouseDownPoint="True"
IsTopBottomViewOrientedToFrontBack="True"
IsViewCubeEdgeClicksEnabled="True">
<!-- 添加一个光源 -->
<HelixToolkit:SunLight />
<!-- 添加一个网格线 -->
<HelixToolkit:GridLinesVisual3D
Width="8"
Length="8"
MajorDistance="1"
MinorDistance="1"
Thickness="0.01" />
<!-- 使用代码加载的3D模型 -->
<ModelVisual3D Content="{Binding Model}" />
</HelixToolkit:HelixViewport3D>
3. 后台代码中加载模型
public Model3D Model { get; set; }
Model = await LoadAsync("xxx.obj",true);
private async Task<Model3DGroup> LoadAsync(string model3DPath, bool freeze)
{
return await Task.Factory.StartNew(() =>
{
var mi = new ModelImporter();
if (freeze)
{
return mi.Load(model3DPath, null, true);
}
return mi.Load(model3DPath, Dispatcher.CurrentDispatcher);
});
}
添加鼠标控制:
viewPort3d.RotateGesture = new MouseGesture(MouseAction.LeftClick);