Comment : définir un stylet
Cet exemple montre comment utiliser une Pen forme pour décrire une forme. Pour créer un simple Pen, vous devez uniquement spécifier son Thickness et Brush. Vous pouvez créer des stylets plus complexes en spécifiant un DashStyle, , DashCapLineJoin, StartLineCapet EndLineCap.
Exemple
L’exemple suivant utilise un Pen pour décrire une forme définie par un GeometryDrawing.
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace SDKSample
{
public partial class PenExample : Page
{
public PenExample()
{
// Create several geometries.
RectangleGeometry myRectangleGeometry = new RectangleGeometry();
myRectangleGeometry.Rect = new Rect(0, 0, 50, 50);
EllipseGeometry myEllipseGeometry = new EllipseGeometry();
myEllipseGeometry.Center = new Point(75, 75);
myEllipseGeometry.RadiusX = 50;
myEllipseGeometry.RadiusY = 50;
LineGeometry myLineGeometry = new LineGeometry();
myLineGeometry.StartPoint = new Point(75, 75);
myLineGeometry.EndPoint = new Point(75, 0);
// Create a GeometryGroup and add the geometries to it.
GeometryGroup myGeometryGroup = new GeometryGroup();
myGeometryGroup.Children.Add(myRectangleGeometry);
myGeometryGroup.Children.Add(myEllipseGeometry);
myGeometryGroup.Children.Add(myLineGeometry);
// Create a GeometryDrawing and use the GeometryGroup to specify
// its geometry.
GeometryDrawing myGeometryDrawing = new GeometryDrawing();
myGeometryDrawing.Geometry = myGeometryGroup;
// Add the GeometryDrawing to a DrawingGroup.
DrawingGroup myDrawingGroup = new DrawingGroup();
myDrawingGroup.Children.Add(myGeometryDrawing);
// Create a Pen to add to the GeometryDrawing created above.
Pen myPen = new Pen();
myPen.Thickness = 10;
myPen.LineJoin = PenLineJoin.Round;
myPen.EndLineCap = PenLineCap.Round;
// Create a gradient to use as a value for the Pen's Brush property.
GradientStop firstStop = new GradientStop();
firstStop.Offset = 0.0;
Color c1 = new Color();
c1.A = 255;
c1.R = 204;
c1.G = 204;
c1.B = 255;
firstStop.Color = c1;
GradientStop secondStop = new GradientStop();
secondStop.Offset = 1.0;
secondStop.Color = Colors.Purple;
LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush();
myLinearGradientBrush.GradientStops.Add(firstStop);
myLinearGradientBrush.GradientStops.Add(secondStop);
myPen.Brush = myLinearGradientBrush;
myGeometryDrawing.Pen = myPen;
// Create an Image and set its DrawingImage to the Geometry created above.
Image myImage = new Image();
myImage.Stretch = Stretch.None;
myImage.Margin = new Thickness(10);
DrawingImage myDrawingImage = new DrawingImage();
myDrawingImage.Drawing = myDrawingGroup;
myImage.Source = myDrawingImage;
this.Content = myImage;
}
}
}
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Namespace SDKSample
Partial Public Class PenExample
Inherits Page
Public Sub New()
' Create several geometries.
Dim myRectangleGeometry As New RectangleGeometry()
myRectangleGeometry.Rect = New Rect(0, 0, 50, 50)
Dim myEllipseGeometry As New EllipseGeometry()
myEllipseGeometry.Center = New Point(75, 75)
myEllipseGeometry.RadiusX = 50
myEllipseGeometry.RadiusY = 50
Dim myLineGeometry As New LineGeometry()
myLineGeometry.StartPoint = New Point(75, 75)
myLineGeometry.EndPoint = New Point(75, 0)
' Create a GeometryGroup and add the geometries to it.
Dim myGeometryGroup As New GeometryGroup()
myGeometryGroup.Children.Add(myRectangleGeometry)
myGeometryGroup.Children.Add(myEllipseGeometry)
myGeometryGroup.Children.Add(myLineGeometry)
' Create a GeometryDrawing and use the GeometryGroup to specify
' its geometry.
Dim myGeometryDrawing As New GeometryDrawing()
myGeometryDrawing.Geometry = myGeometryGroup
' Add the GeometryDrawing to a DrawingGroup.
Dim myDrawingGroup As New DrawingGroup()
myDrawingGroup.Children.Add(myGeometryDrawing)
' Create a Pen to add to the GeometryDrawing created above.
Dim myPen As New Pen()
myPen.Thickness = 10
myPen.LineJoin = PenLineJoin.Round
myPen.EndLineCap = PenLineCap.Round
' Create a gradient to use as a value for the Pen's Brush property.
Dim firstStop As New GradientStop()
firstStop.Offset = 0.0
Dim c1 As New Color()
c1.A = 255
c1.R = 204
c1.G = 204
c1.B = 255
firstStop.Color = c1
Dim secondStop As New GradientStop()
secondStop.Offset = 1.0
secondStop.Color = Colors.Purple
Dim myLinearGradientBrush As New LinearGradientBrush()
myLinearGradientBrush.GradientStops.Add(firstStop)
myLinearGradientBrush.GradientStops.Add(secondStop)
myPen.Brush = myLinearGradientBrush
myGeometryDrawing.Pen = myPen
' Create an Image and set its DrawingImage to the Geometry created above.
Dim myImage As New Image()
myImage.Stretch = Stretch.None
myImage.Margin = New Thickness(10)
Dim myDrawingImage As New DrawingImage()
myDrawingImage.Drawing = myDrawingGroup
myImage.Source = myDrawingImage
Me.Content = myImage
End Sub
End Class
End Namespace
GeometryDrawing
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
.NET Desktop feedback