Контент ModelVisual3D не обновляется

Я действительно новичок в WPF HelixToolkit. Для своего приложения я использую Helixtoolkit, где я загружаю своего робота как экземпляр из другого класса в viewPort3d. Объект-робот загружается как группа Model3D.

public partial class View3DControl : UserControl, INotifyPropertyChanged
{
public View3DControl()
{
    InitializeComponent();
    if (!DesignerProperties.GetIsInDesignMode(this))
       RobotModel = MainWindow.Instance.RobotModel;  
}

public Robot3DModel RobotModel
{
    get
    {   return _robot3DModel;  }
    set
    {
        _robot3DModel = value;
        if (_robot3DModel != null)
            modelVisual3d.Content = _robot3DModel.Model3D;
    }
}

А это мой Viewport Xaml

<helix:HelixViewport3D   x:Name="viewPort3d" ZoomExtentsWhenLoaded="false" ShowCoordinateSystem="True" Background="{helix:LinearGradientBrush Gray, White}"   ShowCameraInfo="{Binding ShowCameraInfo}">
    <helix:HelixViewport3D.DefaultCamera>
        <PerspectiveCamera Position="1.386 0 0.351" LookDirection="-1.386 0 0" UpDirection="0.78 0 0.625"/>
    </helix:HelixViewport3D.DefaultCamera>
    <helix:DefaultLights/>
    <helix:GridLinesVisual3D MinorDistance="0.5" Thickness="0.005" />
    <ModelVisual3D x:Name="modelVisual3d"  />
</helix:HelixViewport3D>

У меня есть другой класс, в котором я использовал несколько ползунков WPF для вращения суставов роботов. Теперь моя цель - выбрать части модели робота щелчком мыши и повернуть выбранную часть перетаскиванием мышью. Я использую VisualTreeHelper.HitTest для выбора частей модели путем сопоставления значений Bound между объектом-роботом и результатом проверки. Модель загрузилась правильно, и я могу выбирать части робота щелчком мыши, когда робот находится в своем положении по умолчанию (прямо вперед). Но когда я вращаю робота с помощью класса слайдера, результат HitTest не дает повернутых значений привязки. Он всегда дает результат позиции по умолчанию. Похоже, что содержимое modelVisual3D не изменилось, хотя повернутая модель отображается в представлении. Любая помощь в том, как я могу заставить его работать? Или кто-нибудь может предложить другие подходы?

0 ответов

Другие вопросы по тегам