Aracılığıyla paylaş


DrawingGroup.Opacity Özellik

Tanım

Bu DrawingGroupöğesinin opaklığını alır veya ayarlar.

public:
 property double Opacity { double get(); void set(double value); };
public double Opacity { get; set; }
member this.Opacity : double with get, set
Public Property Opacity As Double

Özellik Değeri

Double

Bu öğesinin opaklığını açıklayan 0 ile 1 (dahil) arasında bir DrawingGroupdeğer. Varsayılan değer 1'dir.

Örnekler

Bu örnekte, bir Drawingöğesinin opaklığının nasıl değiştirileceği gösterilmektedir. DrawingGroup sınıfı, özelliği Opacity olan tek nesne türüdürDrawing.

Bir Drawing nesnenin opaklığını değiştirmek için nesneye DrawingGroup ekleyin ve nesnenin DrawingGroup özelliğini ayarlayınOpacity.

Opacity Nesnenin DrawingGroup ayarı alt çizimlerinin opaklığıyla çarpılır; örneğin, bir Opacity DrawingGroup değeri 0,5 ise ve yüzde 50 opak Brushiçeren bir GeometryDrawing içeriyorsa, fırça yüzde 25 opaktır (0,5 * 0,5).

Çizimin belirli bölümlerinin opaklığını değiştirmek için kullanın OpacityMask.

Aşağıdaki örnekte, birkaç GeometryDrawing nesneyi birleştirmek için bir DrawingGroup kullanılır. Örnek ayrıca çizimlerin yüzde 25 opak olması için nesnenin DrawingGroup opaklığını 0,25 olarak ayarlar.

Bu çizimde DrawingGroup , 0,25 olarak ayarlanmış öncesi ve sonrası Opacity gösterilmektedir.

Farklı opaklık ayarlarına sahip DrawingGroups

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SDKSample
{
    public class OpacityExample : Page
    {
        public OpacityExample()
        {

            //
            // Create a GeometryDrawing.
            //

            // Define the drawing's contents.
            PathFigure pLineFigure = new PathFigure();
            pLineFigure.StartPoint = new Point(25, 25);
            PolyLineSegment pLineSegment = new PolyLineSegment();
            pLineSegment.Points.Add(new Point(0, 50));
            pLineSegment.Points.Add(new Point(25, 75));
            pLineSegment.Points.Add(new Point(50, 50));
            pLineSegment.Points.Add(new Point(25, 25));
            pLineSegment.Points.Add(new Point(25, 0));
            pLineFigure.Segments.Add(pLineSegment);
            PathGeometry pGeometry = new PathGeometry();
            pGeometry.Figures.Add(pLineFigure);

            GeometryDrawing drawing1 = new GeometryDrawing(
                    Brushes.Lime,
                    new Pen(Brushes.Black, 10),
                    pGeometry
                );

            //
            // Create another GeometryDrawing.
            //
            GeometryDrawing drawing2 = new GeometryDrawing(
                    Brushes.Lime,
                    new Pen(Brushes.Black, 2),
                    new EllipseGeometry(new Point(10, 10), 5, 5)
                );

            // Create the DrawingGroup and add the
            // geometry drawings.
            DrawingGroup aDrawingGroup = new DrawingGroup();
            aDrawingGroup.Children.Add(drawing1);
            aDrawingGroup.Children.Add(drawing2);

            //
            // Set the opacity of the DrawingGroup to 0.25.
            //
            aDrawingGroup.Opacity = 0.25;

            // Use an Image control and a DrawingImage to
            // display the drawing.
            DrawingImage aDrawingImage = new DrawingImage(aDrawingGroup);

            // Freeze the DrawingImage for performance benefits.
            aDrawingImage.Freeze();

            Image anImage = new Image();
            anImage.Source = aDrawingImage;
            anImage.Stretch = Stretch.None;
            anImage.HorizontalAlignment = HorizontalAlignment.Left;

            // Create a border around the images and add it to the
            // page.
            Border imageBorder = new Border();
            imageBorder.BorderBrush = Brushes.Gray;
            imageBorder.BorderThickness = new Thickness(1);
            imageBorder.VerticalAlignment = VerticalAlignment.Top;
            imageBorder.HorizontalAlignment = HorizontalAlignment.Left;
            imageBorder.Margin = new Thickness(20);
            imageBorder.Child = anImage;

            this.Background = Brushes.White;
            this.Margin = new Thickness(20);
            this.Content = imageBorder;
        }
    }
}
<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" 
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="PresentationOptions"
  Background="White" Margin="20">
  <Border BorderBrush="Gray" BorderThickness="1" 
    HorizontalAlignment="Left" VerticalAlignment="Top"
    Margin="20">
    <Image Stretch="None">
      <Image.Source>
        <DrawingImage PresentationOptions:Freeze="True">
          <DrawingImage.Drawing>

            <!-- The drawing group, with an Opacity of 0.25. -->
            <DrawingGroup Opacity="0.25">
              <GeometryDrawing Brush="Lime" Geometry="M 25,25 L 0,50 25,75 50,50 25,25 25,0">
                <GeometryDrawing.Pen>
                  <Pen Thickness="10" Brush="Black" />
                </GeometryDrawing.Pen>
              </GeometryDrawing>
              <GeometryDrawing Brush="Lime">
                <GeometryDrawing.Geometry>
                  <EllipseGeometry Center="10,10" RadiusX="5" RadiusY="5" />
                </GeometryDrawing.Geometry>
                <GeometryDrawing.Pen>
                  <Pen Thickness="2" Brush="Black" />
                </GeometryDrawing.Pen>
              </GeometryDrawing>
            </DrawingGroup>
          </DrawingImage.Drawing>
        </DrawingImage>
      </Image.Source>
    </Image>
  </Border>


</Page>

Açıklamalar

değeri öğesinin 1 DrawingGroup tamamen donuk olduğunu belirtir; değeri 0 ise tamamen saydam olduğunu belirtir. 0'dan küçük bir değer 0, 1'den büyük bir değer ise 1 olarak değerlendirilir.

bir öğesinin opaklığını denetlemenin bir GeometryDrawing diğer yolu da öğesinin değerini Opacity Brushbelirtmektir.

DrawingGroup işlemler aşağıdaki sırayla uygulanır:

  1. OpacityMask

  2. Opacity

  3. BitmapEffect

  4. ClipGeometry

  5. GuidelineSet

  6. Transform

Bağımlılık Özelliği Bilgileri

Tanımlayıcı alanı OpacityProperty
Meta veri özellikleri olarak ayarlandı true Hiçbiri

Şunlara uygulanır

Ayrıca bkz.