■ VisualBrush 엘리먼트 : Visual 속성을 사용해 텍스트 표시하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


MainWindow.xaml

 

 

<Window x:Class="TestProject.MainWindow"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="800"

    Height="600"

    Title="VisualBrush 엘리먼트 : Visual 속성을 사용해 텍스트 표시하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <Window.Resources>

        <DiffuseMaterial x:Key="TextDiffuseMaterialKey">

            <DiffuseMaterial.Brush>

                <VisualBrush RenderOptions.CachingHint="Cache">

                    <VisualBrush.Visual>

                        <TextBlock Text="3D 문자열" />

                    </VisualBrush.Visual>

                </VisualBrush>

            </DiffuseMaterial.Brush>

        </DiffuseMaterial>

    </Window.Resources>

    <Viewport3D>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <GeometryModel3D

                    Material="{StaticResource TextDiffuseMaterialKey}"

                    BackMaterial="{StaticResource TextDiffuseMaterialKey}">

                    <GeometryModel3D.Geometry>

                        <MeshGeometry3D

                            Positions="0 0 0, 0 1 0, 1 0 0, 1 1 0"

                            TriangleIndices="0 2 3, 0 3 1"

                            TextureCoordinates="0 1, 0 0, 1 1, 1 0" />

                    </GeometryModel3D.Geometry>

                    <GeometryModel3D.Transform>

                        <RotateTransform3D>

                            <RotateTransform3D.Rotation>

                                <AxisAngleRotation3D x:Name="axisAngleRotation3D"

                                    Axis="0 1 0" />

                            </RotateTransform3D.Rotation>

                        </RotateTransform3D>

                    </GeometryModel3D.Transform>

                </GeometryModel3D>

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <AmbientLight Color="White" />

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <Viewport3D.Camera>

            <PerspectiveCamera

                Position="0 0.5 1.5"

                LookDirection="0 0 -1"

                UpDirection="0 1 0"

                FieldOfView="120" />

        </Viewport3D.Camera>

    </Viewport3D>

    <Window.Triggers>

        <EventTrigger RoutedEvent="Window.Loaded">

            <BeginStoryboard>

                <Storyboard

                    TargetName="axisAngleRotation3D"

                    TargetProperty="Angle">

                    <DoubleAnimation

                        From="360"

                        To="0"

                        Duration="0:0:10"

                        RepeatBehavior="Forever" />

                </Storyboard>

            </BeginStoryboard>

        </EventTrigger>

    </Window.Triggers>

</Window>

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker