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

■ DrawingBrush 엘리먼트를 사용하는 방법을 보여준다.

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="DrawingBrush 엘리먼트 사용하기"
    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 0, 1 0, 0 1, 1 1,
                                                        0 0, 1 0, 0 1, 1 1,
                                                        0 0, 1 0, 0 1, 1 1,
                                                        0 0, 1 0, 0 1, 1 1,
                                                        0 0, 1 0, 0 1, 1 1,
                                                        0 0, 1 0, 0 1, 1 1" />
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <MaterialGroup>
                                    <DiffuseMaterial>
                                        <DiffuseMaterial.Brush>
                                            <ImageBrush ImageSource="./sample.jpg" />
                                        </DiffuseMaterial.Brush>
                                    </DiffuseMaterial>
                                    <DiffuseMaterial>
                                        <DiffuseMaterial.Brush>
                                            <DrawingBrush
                                                Viewbox="0 0 100 100"
                                                ViewboxUnits="Absolute">
                                                <DrawingBrush.Drawing>
                                                    <GeometryDrawing>
                                                        <GeometryDrawing.Geometry>
                                                            <EllipseGeometry Center="50 50" RadiusX="50" RadiusY="50" />
                                                        </GeometryDrawing.Geometry>
                                                        <GeometryDrawing.Pen>
                                                            <Pen
                                                                Brush="RoyalBlue"
                                                                Thickness="3"
                                                                StartLineCap="Round"
                                                                EndLineCap="Round" />
                                                        </GeometryDrawing.Pen>
                                                    </GeometryDrawing>
                                                </DrawingBrush.Drawing>
                                            </DrawingBrush>
                                        </DiffuseMaterial.Brush>
                                    </DiffuseMaterial>
                                </MaterialGroup>
                            </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="White" />
                    </Model3DGroup>
                </ModelVisual3D.Content>
            </ModelVisual3D>
            <Viewport3D.Camera>
                <PerspectiveCamera
                    Position="-2 2 4"
                    LookDirection="2 -2 -4"
                    UpDirection="0 1 0"
                    FieldOfView="30" />
            </Viewport3D.Camera>
        </Viewport3D>
    </DockPanel>
</Window>
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요