첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ VisualBrush 엘리먼트 사용하기

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


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 엘리먼트 사용하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <DockPanel>

        <ScrollBar Name="horizontalScrollBar" DockPanel.Dock="Bottom"

            Orientation="Horizontal"

            Minimum="-180"

            Maximum="180"

            LargeChange="10"

            SmallChange="1" />

        <ScrollBar Name="verticalScrollBar" DockPanel.Dock="Right"

            Orientation="Vertical"

            Minimum="-180"

            Maximum="180"

            LargeChange="10"

            SmallChange="1" />

        <Viewport3D>

            <ModelVisual3D>

                <ModelVisual3D.Content>

                    <Model3DGroup>

                        <GeometryModel3D>

                            <GeometryModel3D.Geometry>

                                <MeshGeometry3D

                                    Positions="-0.5  0.5  0.5,  0.5  0.5  0.5,

                                               -0.5 -0.5  0.5,  0.5 -0.5  0.5,

                                                0.5  0.5 -0.5, -0.5  0.5 -0.5,

                                                0.5 -0.5 -0.5, -0.5 -0.5 -0.5,

                                               -0.5  0.5 -0.5, -0.5  0.5  0.5,

                                               -0.5 -0.5 -0.5, -0.5 -0.5  0.5,

                                                0.5  0.5  0.5,  0.5  0.5 -0.5,

                                                0.5 -0.5  0.5,  0.5 -0.5 -0.5,

                                               -0.5  0.5 -0.5,  0.5  0.5 -0.5,

                                               -0.5  0.5  0.5,  0.5  0.5  0.5,

                                                0.5 -0.5 -0.5, -0.5 -0.5 -0.5,

                                                0.5 -0.5  0.5, -0.5 -0.5  0.5"

                                    TriangleIndices=" 0  2  1,  1  2  3

                                                      4  6  5,  5  6  7,

                                                      8 10  9,  9 10 11,

                                                     12 14 13, 13 14 15

                                                     16 18 17, 17 18 19

                                                     20 22 21, 21 22 23"

                                    TextureCoordinates="0.000 0, 0.167 0, 0.000 1, 0.167 1,

                                                        0.167 0, 0.333 0, 0.167 1, 0.333 1,

                                                        0.333 0, 0.500 0, 0.333 1, 0.500 1,

                                                        0.500 0, 0.667 0, 0.500 1, 0.667 1,

                                                        0.667 0, 0.833 0, 0.667 1, 0.833 1,

                                                        0.833 0, 1.000 0, 0.833 1, 1.000 1" />

                            </GeometryModel3D.Geometry>

                            <GeometryModel3D.Material>

                                <DiffuseMaterial>

                                    <DiffuseMaterial.Brush>

                                        <VisualBrush

                                            RenderOptions.CachingHint="Cache">

                                            <VisualBrush.Visual>

                                                <UniformGrid Columns="6">

                                                    <Rectangle Width="10" Height="10" Fill="#ff0000" />

                                                    <Rectangle Width="10" Height="10" Fill="#ffff00" />

                                                    <Rectangle Width="10" Height="10" Fill="#00ff00" />

                                                    <Rectangle Width="10" Height="10" Fill="#00ffff" />

                                                    <Rectangle Width="10" Height="10" Fill="#0000ff" />

                                                    <Rectangle Width="10" Height="10" Fill="#ff00ff" />

                                                </UniformGrid>

                                            </VisualBrush.Visual>

                                        </VisualBrush>

                                    </DiffuseMaterial.Brush>

                                </DiffuseMaterial>

                            </GeometryModel3D.Material>

                            <GeometryModel3D.Transform>

                                <Transform3DGroup>

                                    <RotateTransform3D>

                                        <RotateTransform3D.Rotation>

                                            <AxisAngleRotation3D

                                                Axis="0 1 0"

                                                Angle="{Binding ElementName=horizontalScrollBar, Path=Value}" />

                                        </RotateTransform3D.Rotation>

                                    </RotateTransform3D>

                                    <RotateTransform3D>

                                        <RotateTransform3D.Rotation>

                                            <AxisAngleRotation3D

                                                Axis="1 0 0"

                                                Angle="{Binding ElementName=verticalScrollBar, Path=Value}" />

                                        </RotateTransform3D.Rotation>

                                    </RotateTransform3D>

                                </Transform3DGroup>

                            </GeometryModel3D.Transform>

                        </GeometryModel3D>

                        <AmbientLight Color="Gray" />

                        <DirectionalLight

                            Color="Gray"

                            Direction="2 -3 -1" />

                    </Model3DGroup>

                </ModelVisual3D.Content>

            </ModelVisual3D>

            <Viewport3D.Camera>

                <PerspectiveCamera

                    Position="-2.5 2.5 5"

                    LookDirection="2 -2 -4"

                    UpDirection="0 1 0"

                    FieldOfView="35" />

            </Viewport3D.Camera>

        </Viewport3D>

    </DockPanel>

</Window>

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요