Я разрабатываю приложение 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 Я люблю голосование без объяснения причин :)