첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ 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>
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요