■ VisualBrush 엘리먼트를 사용하는 방법을 보여준다.
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
<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> |