WPF Helix如何在代码中"zoom extent" viewport3d?

WPF Helix how to "zoom extent" viewport3d in code?

所以我的 "view" 程序集中有这个 xaml 代码:

<helix:HelixViewport3D ZoomExtentsWhenLoaded="True"
                       ShowCoordinateSystem="True"
                       IsMoveEnabled="False"
                       Margin="5,5,5,0">
    <helix:HelixViewport3D.Camera>
        <OrthographicCamera LookDirection="1,1,-1" 
                            Position="{Binding CameraPosition}"
                            UpDirection="0,0,1">
        </OrthographicCamera>
    </helix:HelixViewport3D.Camera>
    <ModelVisual3D Content="{Binding Lights}"/>
    <local:ScatterPlotVisual3D Points="{Binding Data}"
                               SolutionPoints="{Binding Solution}"
                               SurfaceBrush="{Binding SurfaceBrush}"/>
</helix:HelixViewport3D>

在 "view-model" 程序集中,我正在将一些数据加载到 ScatterPlotVisual3D 中,它会创建新图(显示一些点、边界框、标签等):

private Model3D CreateModel()
{
    var plotModel = new Model3DGroup();
    if (Points == null && SolutionPoints == null) return plotModel;

    List<Point3D> allPoints = new List<Point3D>();

    if (Points != null && Points.Length != 0)
    {
        plotModel.Children.Add(CreatePointsModel(Points, Brushes.Green));
        allPoints.AddRange(Points);
    }

    if (SolutionPoints != null && SolutionPoints.Length != 0)
    {
        plotModel.Children.Add(CreatePointsModel(SolutionPoints, Brushes.Red));
        allPoints.AddRange(SolutionPoints);
    }

    CreateBoundaryAxis(plotModel, allPoints);            

    return plotModel;            
}

所以我需要做的是在加载数据时强制 HelixViewport3D 进入 "doing" ZoomExtents()(或任何其他类似的缩放相机以适应模型的方式)。
问题:我无法调用 ZoomExtents(),因为我没有任何对 XAML

中声明的 helix:HelixViewport3D 的引用

您可以在 C# 代码中创建对 Helixviewport 的引用,方法是在 xaml:

中为其分配一个名称
<helix:HelixViewport3D Name="NameYouChoose"
                       ZoomExtentsWhenLoaded="True"
                       ShowCoordinateSystem="True"
                       IsMoveEnabled="False"
                       Margin="5,5,5,0">

然后在 C# 代码中,只需在子项更新后调用以下命令即可。

NameYouChoose.ZoomExtents()

我刚刚将事件添加到我的 ScatterPlotVisual3D 并将 xaml 中的此事件分配给视图的私有函数,该函数可以访问 HelixViewport3D 并在其上调用 ZoomExtents()。现在我在加载数据时调用我的事件