Как удалить ModelUIElement3D и Viewport2DVisual3D от ветра - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть несколько трехмерных элементов в окне, и я хочу в какой-то момент удалить ВСЕ и начать все сначала, как мне это сделать? у меня есть это на XAML:

<tools:TrackballDecorator>
    <Viewport3D x:Name="_Main3D"
                ClipToBounds="False"
                Camera="{StaticResource Other3D_MainCamera}">

        <!-- ModelVisual3D containing the lights -->
        <StaticResource ResourceKey="Other3D_Lights" />

        <!-- 
            Clickable 3D models (ModelUIElement3D): Cover, spine and edges
            They will work as if they were one object, so I'll use only one ModelUIElement3D to hold them and wire up their events.
        -->
        <ModelUIElement3D  MouseDown="Cover_MouseDown" x:Name="Book">
            <ModelUIElement3D.Model>
                <Model3DGroup>
                    <GeometryModel3D x:Name="_FrontCover"
                                     Geometry="{StaticResource MeshGeometry3D_Cover}"
                                     Material="{StaticResource Material_FrontCover}"
                                     Transform="{StaticResource Transform3D_FrontCover}" />
                    <GeometryModel3D x:Name="_BackCover"
                                     Geometry="{StaticResource MeshGeometry3D_Cover}"
                                     Material="{StaticResource Material_Cover}"
                                     Transform="{StaticResource Transform3D_BackCover}" />
                    <GeometryModel3D x:Name="_SpineCover"
                                     Geometry="{StaticResource MeshGeometry3D_Cover}"
                                     Material="{StaticResource Material_Cover}"
                                     Transform="{StaticResource Transform3D_SpineCover}" />
                    <GeometryModel3D x:Name="_LeftEdge"
                                     Geometry="{StaticResource MeshGeometry3D_Edge}"
                                     Material="{StaticResource Material_Edge}"
                                     Transform="{StaticResource Transform3D_Left}" />
                    <GeometryModel3D x:Name="_RightEdge"
                                     Geometry="{StaticResource MeshGeometry3D_Edge}"
                                     Material="{StaticResource Material_Edge}"
                                     Transform="{StaticResource Transform3D_Right}" />
                </Model3DGroup>
            </ModelUIElement3D.Model>
        </ModelUIElement3D>

        <!-- Interactive 3D models: Pages -->

        <Viewport2DVisual3D x:Name="_LeftPage"
                            Geometry="{StaticResource MeshGeometry3D_Plane}"
                            Transform="{StaticResource Transform3D_Left}">
            <Viewport2DVisual3D.Material>
                <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" />
            </Viewport2DVisual3D.Material>
            <Viewport2DVisual3D.Visual>
                <Image Source="C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" />

            </Viewport2DVisual3D.Visual>
        </Viewport2DVisual3D>


        <Viewport2DVisual3D x:Name="_RightPage"
                            Geometry="{StaticResource MeshGeometry3D_Plane}"
                            Transform="{StaticResource Transform3D_Right}">
            <Viewport2DVisual3D.Material>
                <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" />
            </Viewport2DVisual3D.Material>
            <Viewport2DVisual3D.Visual>
                <!--
                <TextBox Style="{StaticResource Control_PagesStyle}"
                         Padding="5,30,30,30"
                         MouseDoubleClick="Page_MouseDoubleClick" />
                 -->
                 <!-- The TextBox above was replaced by an InkCanvas -->
                <InkCanvas Style="{StaticResource Control_InkCanvasStyle}" PreviewMouseRightButtonDown="InkCanvas_PreviewMouseRightButtonDown"/>
            </Viewport2DVisual3D.Visual>
        </Viewport2DVisual3D>

    </Viewport3D>
</tools:TrackballDecorator>

Но когда я пытаюсь сделать

_LayoutRoot.Children.Remove()

Это не позволяет, потому что они не являются элементами UIE. Любая помощь в этом?

1 Ответ

0 голосов
/ 12 февраля 2012

Решено, используемый : _LayoutRoot.Children.Clear ();

И это сработало.

Clear () удаляет все элементы из сетки, и готовит их для сбора мусора. Надеюсь, это кому-нибудь поможет.

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