Partager via


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

Outlines produces by a Pen
GeometryDrawing