Как обновить каркас без нажатия кнопки WPF? - PullRequest
1 голос
/ 22 октября 2019

Я разрабатываю приложение Windows Form с WPF User Control, встроенным в WF. Если я добавлю кнопку и выполню мой userControl.DrawWireFrameCube(); Мой ViewPort3D будет обновлен. Я использую Helix 3D Toolkit. Но если я вызываю мой метод из моего класса MainWindowForm, он не выполняется и пользовательский интерфейс не обновляется, а только userControl.DrawWireFrameCube(); не работает. Другой метод userControl.Draw3DObject(insertionPoint, points, color); работает нормально.

 private void VisualizePart(int index)
        {
            InsertionPoint insertionPoint = new InsertionPoint
            {
                X = _duplicatedListParts[index].INFO1,
                Y = _duplicatedListParts[index].INFO2,
                Z = _duplicatedListParts[index].INFO3
            };

            DetailSize points = new DetailSize
            {
                Length = _duplicatedListParts[index].LENGTH,
                Width = _duplicatedListParts[index].WIDTH,
                Thickness = _duplicatedListParts[index].THICKNESS
            };
            userControl.Dispatcher.Invoke(() =>
            {
                System.Windows.Media.Color color = System.Windows.Media.Color.FromRgb(255, 90, 0);
                userControl.Draw3DObject(insertionPoint, points, color);
                userControl.DrawWireFrameCube();
            });
        }

Разница в том, что в моем Draw3DObject() я добавляю элементы в Model3DGroup, а в DrawWireFrameCube() я добавляю элементы в MyViewPort3D. Я не использую XAML и хочу остаться таким. Есть идеи, что здесь не так?

PS Я люблю голосование без объяснения причин :)

...