728x90
반응형
728x170
■ DrawingBrush 엘리먼트를 사용하는 방법을 보여준다.
▶ 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
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] MeshGeometry3D 클래스 : 리소스 사용하기 (0) | 2019.09.01 |
---|---|
[C#/WPF] MeshGeometry3D 클래스 : 리소스 사용하기 (0) | 2019.08.28 |
[C#/WPF] MeshGeometry3D 클래스 : 삼각측량법을 사용해 비치볼 만들기 (0) | 2019.08.27 |
[C#/WPF] SpecularMaterial 엘리먼트 사용하기 (0) | 2019.08.26 |
[C#/WPF] SpecularMaterial 엘리먼트 사용하기 (0) | 2019.08.26 |
[C#/WPF] VisualBrush 엘리먼트 사용하기 (0) | 2019.08.25 |
[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 |
댓글을 달아 주세요