WPF: Как добавить 3D-объект из файла xaml в мой viewport3D? - PullRequest
1 голос
/ 27 августа 2010

У меня есть viewport3D, и я хочу добавить несколько трехмерных объектов, определенных в файлах xaml, в этот Viewport3D, но по умолчанию трехмерный объект, определенный в файле .xaml, уже поставляется с viewport3D, и я не могу добавить его в свой Viewport3D Как я могу использовать эти 3D-объекты из файлов .xaml в моем Viewport3D?

Я попытался прочитать xaml с помощью XamlReader, привести его к viewport3D, а затем взять дочерние элементы vieport3D и добавить в мой видовой экран, но я получаю сообщение об ошибке «Указанный Visual уже является потомком другого Visual или корнем CompositionTarget».

1 Ответ

1 голос
/ 27 августа 2010

Попробуйте код ниже. Я действительно не работал с 3D в WPF, но я предполагаю, что он ведет себя так же, как обычные панели WPF:

Viewport3D vp = XamlReader.Load(fileName) as Viewport3D;

//Move the child visuals to a temporary collection.
List<Visual3D> items = new List<Visual3D>();
foreach (Visual3D visual in vp.Children)
{
    items.Add(visual);
}

//"Detach" the visuals from the original parent.
vp.Children.Clear();

//Now, put it in the destination viewport.
foreach (var item in items)
{
    myViewport.Children.Add(item);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...