Вопрос об обновлении [ModelVisual3D] в WPF после изменения значения AxisAngleRotation3D - PullRequest
1 голос
/ 09 мая 2020

Я новичок в использовании WPF. Я показываю трехмерный объект в моем программном обеспечении winform. С помощью элементов управления elementHost я могу правильно загрузить объект. Но когда я вызвал тестовую функцию для поворота объекта, я обнаружил, что значение изменилось. Я прервал программу, чтобы проверить. Но объект, показанный в пользовательском интерфейсе, не обновился. Как я могу выполнить sh функцию интерфейса UI при изменении AxisAngleRotation3D?

Ниже приведен упрощенный тестовый код. Первый блок кода - это model.xaml.

<ModelVisual3D x:Name="World">
                    <ModelVisual3D.Transform>
                        <Transform3DGroup>
                            <ScaleTransform3D ScaleZ="1.0" ScaleY="1.0" ScaleX="1.0"/>
                            <RotateTransform3D d:EulerAngles="90.806,-49.429,-19.335" >
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="myAxis" Axis="0,1,0" Angle="10"/>
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                        </Transform3DGroup>
                    <ModelVisual3D x:Name="DefaultGroup">
                   <ModelVisual3D.Content>
                   I omit this part which is not related to the topic.
                   </ModelVisual3D.Content>
                   </ModelVisual3D>
</ModelVisual3D>

Второй блок кода - model.xaml.cs.

 public void rotate3D()
        {
            Vector3D vector = new Vector3D(0,1,1);
            double angle = 100;
            AxisAngleRotation3D axisAngleRotation3D = new AxisAngleRotation3D(vector, angle);
            myAxis = axisAngleRotation3D;
        }   

Третий блок кода - это функция, вызываемая пользователем, например нажатие кнопки.

        private void ControlRotateModel()
        {

            try
                {
                    ((model)elementHost.Child).rotate3D();
                }
            catch (Exception ex)
                {
                     //
                }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...