¿Cómo se hace un lienzo (etiquetas, rectángulos, etc.) en 3D en la combinación de expresiones 4?

Estoy tratando de hacer un "cambio de página", similar a las selecciones en Windows Phone 7 Media Player. ¿Cómo hago que el lado izquierdo sea un eje y que el lado derecho esté "trapezoidal"? He descubierto esto con imágenes, entro en Herramientas> Crear imagen 3D. Quiero hacer esto con un lienzo. ¿Es esto posible en wpf usando la combinación de expresión 4?

preguntado el 27 de agosto de 11 a las 21:08

2 Respuestas

También he estado investigando esto.

Solo tenga en cuenta que depende de si está apuntando a Silverlight o WPF. Silverlight tiene el elemento PlaneProjection que aparece como una sección de Perspectiva en Transformar en Fusión.

Para WPF, deberá usar Viewport3DVisual3D como dice la otra respuesta, aunque hay ayudantes de código abierto útiles. El más cercano a PlaneProjection de Silverlight que encontré se llama Plane y se puede encontrar aquí:

http://blog.endquote.com/post/710116433/planeprojection-in-wpf

Respondido 13 Feb 12, 18:02

Puedes intentar usar Viewport2DVisual3D, sin embargo, es posible que deba realizar una gran cantidad de codificación manual. Para hacer que el contenido gire en un lado, debe traducir, rotar y traducir hacia atrás, de forma predeterminada, la combinación usa solo una transformación de cada tipo. Adapté el ejemplo en la documentación para mostrar esto:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Page.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation
                        Duration="0:0:5"
                        From="0"
                        RepeatBehavior="Forever"
                        Storyboard.TargetName="rotation"
                        Storyboard.TargetProperty="Angle"
                        To="-360"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Page.Triggers>
    <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
        <Viewport3D>
            <Viewport3D.Camera>
                <PerspectiveCamera Position="0, 0, 4"/>
            </Viewport3D.Camera>
    <!-- Button on 3D -->
            <Viewport2DVisual3D>
    <!-- Give the plane a slight rotation -->
                <Viewport2DVisual3D.Transform>
                    <Transform3DGroup>
                        <TranslateTransform3D OffsetX="1"/>
                        <RotateTransform3D>
                            <RotateTransform3D.Rotation>
                                <AxisAngleRotation3D x:Name="rotation" Axis="0, 1, 0"/>
                            </RotateTransform3D.Rotation>
                        </RotateTransform3D>
                        <TranslateTransform3D OffsetX="-1"/>
                    </Transform3DGroup>
                </Viewport2DVisual3D.Transform>
    <!-- The Geometry, Material, and Visual for the Viewport2DVisual3D -->
                <Viewport2DVisual3D.Geometry>
                    <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0" TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
                </Viewport2DVisual3D.Geometry>
                <Viewport2DVisual3D.Material>
                    <DiffuseMaterial Brush="White" Viewport2DVisual3D.IsVisualHostMaterial="True"/>
                </Viewport2DVisual3D.Material>
                <Grid Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" Background="Transparent">
                    <Button VerticalAlignment="Center" Content="Hello, 3D"/>
                </Grid>
            </Viewport2DVisual3D>
    <!-- Lights -->
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <DirectionalLight Color="#FFFFFFFF" Direction="0,0,-1"/>
                </ModelVisual3D.Content>
            </ModelVisual3D>
        </Viewport3D>
    </ScrollViewer>
</Page>

Respondido 19 ago 20, 06:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.