绘图

#region 程序集 PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.0PresentationCore.dll
#endregion

using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Threading;

namespace System.Windows.Media
{
//
// 摘要:
// 使用 draw、push 和 pop 命令描述可视内容。
public abstract class DrawingContext : DispatcherObject, IDisposable
{
//
// 摘要:
// 关闭 System.Windows.Media.DrawingContext 并刷新内容。此后,将不能修改 System.Windows.Media.DrawingContext。
//
// 异常:
// T:System.ObjectDisposedException:
// 此对象已被关闭或释放。
public abstract void Close();
//
// 摘要:
// 绘制指定的 System.Windows.Media.Drawing 对象。
//
// 参数:
// drawing:
// 要追加的绘图。
public abstract void DrawDrawing(Drawing drawing);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制一个椭圆。
//
// 参数:
//
// 用于填充椭圆的画笔。此参数可选,而且可以为 null。如果 brush 为 null,则不绘制任何填充。
//
// pen:
// 用于绘制椭圆笔画的笔。此参数可选,而且可以为 null。如果 pen 为 null,则不绘制任何笔画。
//
// center:
// 椭圆的中心位置。
//
// radiusX:
// 椭圆的水平半径。
//
// radiusY:
// 椭圆的垂直半径。
public abstract void DrawEllipse(Brush brush, Pen pen, Point center, double radiusX, double radiusY);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制一个椭圆并应用指定的动画时钟。
//
// 参数:
//
// 用于填充椭圆的画笔。此参数可选,而且可以为 null。如果 brush 为 null,则不绘制任何填充。
//
// pen:
// 用于绘制椭圆笔画的笔。此参数可选,而且可以为 null。如果 pen 为 null,则不绘制任何笔画。
//
// center:
// 椭圆的中心位置。
//
// centerAnimations:
// 用于对椭圆的中心位置进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Windows.Point 对象进行动画处理的
// System.Windows.Media.Animation.AnimationTimeline 来创建。
//
// radiusX:
// 椭圆的水平半径。
//
// radiusXAnimations:
// 用于对椭圆的 x 轴半径进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Double 对象进行动画处理的 System.Windows.Media.Animation.AnimationTimeline
// 来创建。
//
// radiusY:
// 椭圆的垂直半径。
//
// radiusYAnimations:
// 用于对椭圆的 y 轴半径进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Double 对象进行动画处理的 System.Windows.Media.Animation.AnimationTimeline
// 来创建。
public abstract void DrawEllipse(Brush brush, Pen pen, Point center, AnimationClock centerAnimations, double radiusX, AnimationClock radiusXAnimations, double radiusY, AnimationClock radiusYAnimations);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制指定的 System.Windows.Media.Geometry。
//
// 参数:
//
// 用于填充 System.Windows.Media.Geometry 的 System.Windows.Media.Brush。此参数可选,而且可以为 null。如果
// brush 为 null,则不绘制任何填充。
//
// pen:
// 用于绘制 System.Windows.Media.Geometry 笔画的 System.Windows.Media.Pen。此参数可选,而且可以为 null。如果
// pen 为 null,则不绘制任何笔画。
//
// geometry:
// The System.Windows.Media.Geometry to draw.
public abstract void DrawGeometry(Brush brush, Pen pen, Geometry geometry);
//
// 摘要:
// 绘制指定的文本。
//
// 参数:
// foregroundBrush:
// 用于绘制文本的画笔。
//
// glyphRun:
// 要绘制的文本。
public abstract void DrawGlyphRun(Brush foregroundBrush, GlyphRun glyphRun);
//
// 摘要:
// 将图像绘制到由指定的 System.Windows.Rect 定义的区域中。
//
// 参数:
// imageSource:
// 要绘制的图像。
//
// rectangle:
// 要在其中绘制 bitmapSource 的区域。
public abstract void DrawImage(ImageSource imageSource, Rect rectangle);
//
// 摘要:
// 将图像绘制到由指定的 System.Windows.Rect 定义的区域中并应用指定的动画时钟。
//
// 参数:
// imageSource:
// 要绘制的图像。
//
// rectangle:
// 要在其中绘制 bitmapSource 的区域。
//
// rectangleAnimations:
// 用于对矩形的大小和维数进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Windows.Rect 对象进行动画处理的
// System.Windows.Media.Animation.AnimationTimeline 来创建。
public abstract void DrawImage(ImageSource imageSource, Rect rectangle, AnimationClock rectangleAnimations);
//
// 摘要:
// 使用指定的 System.Windows.Media.Pen 在两个指定的点之间绘制一条线。
//
// 参数:
// pen:
// 用于绘制线条笔画的笔。
//
// point0:
// 线条的起点。
//
// point1:
// 线条的终点。
public abstract void DrawLine(Pen pen, Point point0, Point point1);
//
// 摘要:
// 使用指定的 System.Windows.Media.Pen 在两个指定点之间绘制一条线,并应用指定的动画时钟。
//
// 参数:
// pen:
// 用于绘制线条笔画的笔。
//
// point0:
// 线条的起点。
//
// point0Animations:
// 用于对线条的起点进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Windows.Point 对象进行动画处理的 System.Windows.Media.Animation.AnimationTimeline
// 来创建。
//
// point1:
// 线条的终点。
//
// point1Animations:
// 用于对线条的终点进行动画处理的时钟;如果没有动画,则为 null。This clock must be created from an System.Windows.Media.Animation.AnimationTimeline
// that can animate System.Windows.Point objects.
public abstract void DrawLine(Pen pen, Point point0, AnimationClock point0Animations, Point point1, AnimationClock point1Animations);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制一个矩形。pen 和 brush
// 都可以为 null。
//
// 参数:
//
// 用于填充矩形的画笔。此参数可选,而且可以为 null。如果 brush 为 null,则不绘制任何填充。
//
// pen:
// 用于绘制矩形笔画的笔。此参数可选,而且可以为 null。如果 pen 为 null,则不绘制任何笔画。
//
// rectangle:
// 要绘制的矩形。
public abstract void DrawRectangle(Brush brush, Pen pen, Rect rectangle);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制一个矩形并应用指定的动画时钟。
//
// 参数:
//
// 用于填充矩形的画笔。此参数可选,而且可以为 null。如果 brush 为 null,则不绘制任何填充。
//
// pen:
// 用于绘制矩形笔画的笔。此参数可选,而且可以为 null。如果 pen 为 null,则不绘制任何笔画。
//
// rectangle:
// 要绘制的矩形。
//
// rectangleAnimations:
// 用于对矩形的大小和维数进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Windows.Rect 对象进行动画处理的
// System.Windows.Media.Animation.AnimationTimeline 来创建。
public abstract void DrawRectangle(Brush brush, Pen pen, Rect rectangle, AnimationClock rectangleAnimations);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制一个圆角矩形。
//
// 参数:
//
// 用于填充矩形的画笔。
//
// pen:
// 用于绘制矩形笔画的笔。
//
// rectangle:
// 要绘制的矩形。
//
// radiusX:
// 圆角 X 维的半径。此值将被限制到 0 至 System.Windows.Rect.Width/2 的范围。
//
// radiusY:
// 圆角 Y 维的半径。此值将被限制到 0 至 System.Windows.Rect.Height/2 的范围。
public abstract void DrawRoundedRectangle(Brush brush, Pen pen, Rect rectangle, double radiusX, double radiusY);
//
// 摘要:
// 使用指定的 System.Windows.Media.Brush 和 System.Windows.Media.Pen 绘制一个圆角矩形并应用指定的动画时钟。
//
// 参数:
//
// 用于填充矩形的画笔;如果不填充,则为 null。
//
// pen:
// 用于绘制矩形笔画的笔;如果不绘制笔画,则为 null。
//
// rectangle:
// 要绘制的矩形。
//
// rectangleAnimations:
// 用于对矩形的大小和维数进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Windows.Rect 对象进行动画处理的
// System.Windows.Media.Animation.AnimationTimeline 来创建。
//
// radiusX:
// 圆角 X 维的半径。此值将被限制到 0 至 System.Windows.Rect.Width/2 的范围。
//
// radiusXAnimations:
// 用于对矩形的 radiusX 值进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Double 值进行动画处理的 System.Windows.Media.Animation.AnimationTimeline
// 来创建。
//
// radiusY:
// 圆角 Y 维的半径。此值将被限制到 0 至 System.Windows.Rect.Height/2 的范围。
//
// radiusYAnimations:
// 用于对矩形的 radiusY 值进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Double 值进行动画处理的 System.Windows.Media.Animation.AnimationTimeline
// 来创建。
public abstract void DrawRoundedRectangle(Brush brush, Pen pen, Rect rectangle, AnimationClock rectangleAnimations, double radiusX, AnimationClock radiusXAnimations, double radiusY, AnimationClock radiusYAnimations);
//
// 摘要:
// 在指定位置绘制格式化文本。
//
// 参数:
// formattedText:
// 要绘制的格式化文本。
//
// origin:
// 要绘制文本的位置。
//
// 异常:
// T:System.ObjectDisposedException:
// 该对象已被关闭或释放。
public void DrawText(FormattedText formattedText, Point origin);
//
// 摘要:
// 将视频绘制到指定区域内。
//
// 参数:
// player:
// 要绘制的媒体。
//
// rectangle:
// The region in which to draw player.
public abstract void DrawVideo(MediaPlayer player, Rect rectangle);
//
// 摘要:
// 将视频绘制到指定区域内,并应用指定的动画时钟。
//
// 参数:
// player:
// 要绘制的媒体。
//
// rectangle:
// 要在其中绘制媒体的区域。
//
// rectangleAnimations:
// 用于对矩形的大小和维数进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Windows.Rect 对象进行动画处理的
// System.Windows.Media.Animation.AnimationTimeline 来创建。
public abstract void DrawVideo(MediaPlayer player, Rect rectangle, AnimationClock rectangleAnimations);
//
// 摘要:
// 弹出推送到绘制上下文上的最后一个不透明蒙板、不透明度、剪辑、效果或转换操作。
public abstract void Pop();
//
// 摘要:
// 将指定的剪辑区域推送到绘图上下文上。
//
// 参数:
// clipGeometry:
// 要应用于后续的绘图命令的剪辑区域。
public abstract void PushClip(Geometry clipGeometry);
//
// 摘要:
// 将指定的 System.Windows.Media.Effects.BitmapEffect 推送到绘图上下文上。
//
// 参数:
// effect:
// 要应用于后续绘图的效果。
//
// effectInput:
// 要应用该效果的区域;如果该效果将应用于后续绘图的整个区域,则为 null。
[Obsolete("BitmapEffects are deprecated and no longer function. Consider using Effects where appropriate instead.")]
public abstract void PushEffect(BitmapEffect effect, BitmapEffectInput effectInput);
//
// 摘要:
// Pushes the specified System.Windows.Media.GuidelineSet onto the drawing context.
//
// 参数:
// guidelines:
// 要应用于后续的绘图命令的准则集。
public abstract void PushGuidelineSet(GuidelineSet guidelines);
//
// 摘要:
// 将指定的不透明度设置推送到绘图上下文上。
//
// 参数:
// opacity:
// 要应用于后续的绘图命令的不透明度因子。此因子会在以前 System.Windows.Media.DrawingContext.PushOpacity(System.Double)
// 操作的基础上累积。
public abstract void PushOpacity(double opacity);
//
// 摘要:
// 将指定的不透明度设置推送到绘图上下文上,并应用指定的动画时钟。
//
// 参数:
// opacity:
// 要应用于后续的绘图命令的不透明度因子。此因子会在以前 System.Windows.Media.DrawingContext.PushOpacity(System.Double)
// 操作的基础上累积。
//
// opacityAnimations:
// 用于对不透明度值进行动画处理的时钟;如果没有动画,则为 null。此时钟必须基于能够对 System.Double 值进行动画处理的 System.Windows.Media.Animation.AnimationTimeline
// 来创建。
public abstract void PushOpacity(double opacity, AnimationClock opacityAnimations);
//
// 摘要:
// 将指定的不透明蒙板推送到绘图上下文上。
//
// 参数:
// opacityMask:
// 要应用于后续绘图的不透明蒙板。此画笔的 Alpha 值决定了它要应用到的绘图的不透明度。
public abstract void PushOpacityMask(Brush opacityMask);
//
// 摘要:
// Pushes the specified System.Windows.Media.Transform onto the drawing context.
//
// 参数:
// transform:
// 要应用于后续的绘图命令的转换。
public abstract void PushTransform(Transform transform);
//
// 摘要:
// 释放由 System.Windows.Media.DrawingContext 使用的所有资源。
//
// 异常:
// T:System.ObjectDisposedException:
// 该对象已被关闭或释放。
protected abstract void DisposeCore();
//
// 摘要:
// This member supports the WPF infrastructure and is not intended to be used directly
// from your code.
protected virtual void VerifyApiNonstructuralChange();
}
}

原文地址:https://www.cnblogs.com/linnew/p/10477042.html