728x90
반응형
728x170
■ VisualBrush 엘리먼트를 사용하는 방법을 보여준다.
▶ 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
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] MeshGeometry3D 클래스 : 삼각측량법을 사용해 비치볼 만들기 (0) | 2019.08.27 |
---|---|
[C#/WPF] SpecularMaterial 엘리먼트 사용하기 (0) | 2019.08.26 |
[C#/WPF] SpecularMaterial 엘리먼트 사용하기 (0) | 2019.08.26 |
[C#/WPF] DrawingBrush 엘리먼트 사용하기 (0) | 2019.08.26 |
[C#/WPF] VisualBrush 엘리먼트 사용하기 (0) | 2019.08.25 |
[C#/WPF] VisualBrush 엘리먼트 : Visual 속성을 사용해 텍스트 표시하기 (0) | 2019.08.25 |
[C#/WPF] DrawingBrush 엘리먼트 사용하기 (0) | 2019.08.24 |
[C#/WPF] MeshGeometry3D 엘리먼트 : TextureCoordinates 속성을 사용해 정육면체의 브러시 매핑하기 (0) | 2019.08.24 |
[C#/WPF] MeshGeometry3D 엘리먼트 : TextureCoordinates 속성을 사용해 정육면체의 브러시 매핑하기 (0) | 2019.08.24 |
[C#/WPF] ImageBrush 엘리먼트 : Viewport 속성 사용하기 (0) | 2019.08.24 |
댓글을 달아 주세요