本文整理汇总了C#中DrawingContext类的典型用法代码示例。如果您正苦于以下问题:C# DrawingContext类的具体用法?C# DrawingContext怎么用?C# DrawingContext使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
DrawingContext类属于命名空间,在下文中一共展示了DrawingContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Draw
/// <inheritdoc/>
protected internal override void Draw(DrawingContext dc, UIElement element, OutOfBandRenderTarget target)
{
if (Shader.IsValid && Shader.IsLoaded)
{
DrawRenderTargetAtVisualBounds(dc, element, target, Shader);
}
}
示例2: DrawScene
void DrawScene(DrawingContext dc) {
dc.Rect(Color.FromArgb(255, 0, 0, 30), 0, 0, 500, 500);
// sun
dc.Ellipse(Colors.Yellow, 250, 250, 30, 30);
Planet(dc);
Stars(dc);
}
示例3: ConvertUnitToPixelPoint
public static Point ConvertUnitToPixelPoint(Point unitPoint, DrawingContext drawingContext)
{
Point pixelPoint = new Point();
pixelPoint.X = drawingContext.DrawingSize.Width / (drawingContext.XMaximum - drawingContext.XMinimum) * (unitPoint.X - drawingContext.XMinimum);
pixelPoint.Y = drawingContext.DrawingSize.Height / (drawingContext.YMaximum - drawingContext.YMinimum) * (unitPoint.Y - drawingContext.YMinimum);
return pixelPoint;
}
示例4: OnRender
/// <summary>
/// When overriden in a class, renders the visual
/// </summary>
/// <param name="drawingContext">The <see cref="DrawingContext"/> in whihc to render the visual</param>
protected override void OnRender(DrawingContext drawingContext)
{
if(this.Background != null || this.BorderBrush != null)
{
drawingContext.DrawRectangle(this.RenderTarget, this.BorderThickness, this.Background, this.BorderBrush);
}
if (this.Child != null)
{
this.Child.Render(drawingContext);
}
}
示例5: ConvertUnitToPixelPointCollection
public static PointCollection ConvertUnitToPixelPointCollection(IEnumerable<Point> unitPoints, DrawingContext drawingContext)
{
PointCollection pixelPoints = new PointCollection();
foreach (var unitPoint in unitPoints)
{
pixelPoints.Add(ConvertUnitToPixelPoint(unitPoint, drawingContext));
}
return pixelPoints;
}
示例6: RegisterDrawMethod
public static AutoResetEvent RegisterDrawMethod(Action action)
{
Exceptions.CheckArgumentNull(action, "action");
DrawingContext drawingContext = new DrawingContext(action, new Thread(DrawingThreadProc) {IsBackground = true});
if (!DrawingContexts.TryAdd(action, drawingContext))
throw new Exception("Метод уже зарегистрирован.");
drawingContext.StartWorking();
return drawingContext.DrawEvent;
}
示例7: DrawingContext
internal DrawingContext(DrawingContext context)
{
Context = context.Context;
if (context.Pen != null)
AllocatePen (context.colorBrush.Color, context.Pen.Thickness, context.Pen.DashStyle);
patternBrush = context.patternBrush;
geometry = (PathGeometry) context.Geometry.Clone ();
Path = geometry.Figures[geometry.Figures.Count - 1];
positionSet = context.positionSet;
}
示例8: DrawRenderTargets
/// <inheritdoc/>
protected internal override void DrawRenderTargets(DrawingContext dc, UIElement element, OutOfBandRenderTarget target)
{
var blurTarget = target.Next.RenderTarget;
var gfx = dc.Ultraviolet.GetGraphics();
gfx.SetRenderTarget(blurTarget);
gfx.Clear(Color.Transparent);
effect.Value.Radius = GetRadiusInPixels(element);
effect.Value.Direction = BlurDirection.Horizontal;
dc.Begin(SpriteSortMode.Immediate, effect, Matrix.Identity);
dc.Draw(target.ColorBuffer, Vector2.Zero, Color.White);
dc.End();
}
示例9: DrawScene
void DrawScene(DrawingContext dc) {
dc.DrawEllipse(new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)), null, new Point(50, 18), 12, 12);
dc.DrawEllipse(new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)), new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Point(50, 51), 12, 12);
dc.DrawEllipse(null, new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Point(50, 87), 12, 12);
dc.DrawRectangle(new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)), null, new Rect(25, 111, 24, 24));
dc.DrawRectangle(new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)), new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Rect(25, 147, 24, 24));
dc.DrawRectangle(null, new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Rect(25, 184, 24, 24));
dc.DrawRoundedRectangle(new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)), null, new Rect(25, 237, 24, 24), 5, 5);
dc.DrawRoundedRectangle(new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)), new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Rect(25, 270, 24, 24), 5, 5);
dc.DrawRoundedRectangle(null, new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Rect(25, 307, 24, 24), 5, 5);
dc.DrawLine(new Pen(new SolidColorBrush(Color.FromArgb(255, 100, 100, 100)), 3), new Point(50, 340), new Point (70, 360));
}
示例10: DrawScene
void DrawScene(DrawingContext dc) {
dc.Rect(Color.FromArgb(0, 0, 0, 0), 0, 0, 500, 500);
dc.Ellipse(Colors.Red, 250, 250, 20, 20);
for (int i = 0; i < 5; ++i) {
dc.PushTransform(new RotateTransform(36*i, 250, 250));
dc.Ellipse(Colors.Gray, 3, 250, 250, 40, 150);
dc.Ellipse(Colors.Black,
250 + 40*Math.Cos(angle[i]*0.05),
250 + 150*Math.Sin(angle[i]*0.05),
8, 8);
dc.Pop();
}
}
示例11: DrawOverride
/// <inheritdoc/>
protected override void DrawOverride(UltravioletTime time, DrawingContext dc)
{
var font = Font;
if (font.IsLoaded)
{
View.Resources.StringFormatter.Reset();
View.Resources.StringFormatter.AddArgument(Value);
View.Resources.StringFormatter.Format(Format ?? "{0}", View.Resources.StringBuffer);
var face = font.Resource.Value.GetFace(FontStyle);
var position = Display.DipsToPixels(UntransformedAbsolutePosition);
var positionRounded = dc.IsTransformed ? (Vector2)position : (Vector2)(Point2)position;
dc.DrawString(face, View.Resources.StringBuffer, positionRounded, Foreground);
}
base.DrawOverride(time, dc);
}
示例12: GetShape
public IShape GetShape(DrawingContext drawingContext, Point start, Point end)
{
var pen = (Pen)drawingContext.Pen.Clone();
var brush = drawingContext.Brush == Brushes.Transparent ? Brushes.Transparent : (Brush)drawingContext.Brush.Clone();
switch (drawingContext.ShapeType)
{
case ShapeType.Line:
return new Line(pen, start, end);
case ShapeType.Rectangle:
return new Rectangle(pen, brush, start, end);
case ShapeType.Ellipse:
return new Ellipse(pen, brush, start, end);
default:
throw new ArgumentException("Unknown shape type.");
}
}
示例13: Draw
/// <inheritdoc/>
protected internal override void Draw(DrawingContext dc, UIElement element, OutOfBandRenderTarget target)
{
var state = dc.GetCurrentState();
var position = (Vector2)element.View.Display.DipsToPixels(target.VisualBounds.Location);
var positionRounded = new Vector2((Int32)position.X, (Int32)position.Y);
dc.End();
effect.Value.Radius = GetRadiusInPixels(element);
effect.Value.Direction = BlurDirection.Vertical;
dc.Begin(SpriteSortMode.Immediate, effect, Matrix.Identity);
var shadowTexture = target.Next.ColorBuffer;
dc.Draw(shadowTexture, positionRounded, null, Color.White, 0f, Vector2.Zero, Vector2.One, SpriteEffects.None, 0f);
dc.End();
dc.Begin(state);
}
示例14: MainWindow
public MainWindow()
{
InitializeComponent();
InitializeGraphics();
InitializePlugins();
drawingArea.CanUndoChanged += newValue => undo.Enabled = newValue;
drawingArea.CanRedoChanged += newValue => redo.Enabled = newValue;
_lastSelectedShapeTypeSelector = lineSelector;
_drawingContext = new DrawingContext
{
ShapeType = ShapeType.Line,
Pen = new Pen(penColorSelector.Value, int.Parse(penWidthSelector.Text)),
Brush = Brushes.Transparent
};
drawingArea.DrawingContext = _drawingContext;
}
示例15: DrawRenderTargetAtVisualBounds
/// <summary>
/// Draws the specified render target at its desired visual bounds.
/// </summary>
/// <param name="dc">The current drawing context.</param>
/// <param name="element">The element being drawn.</param>
/// <param name="target">The render target that contains the element's graphics.</param>
/// <param name="effect">The shader effect to apply to the render target, if any.</param>
public static void DrawRenderTargetAtVisualBounds(DrawingContext dc, UIElement element, OutOfBandRenderTarget target, GraphicsEffect effect = null)
{
Contract.Require(dc, "dc");
Contract.Require(element, "element");
Contract.Require(target, "rtarget");
if (element.View == null)
return;
var state = dc.GetCurrentState();
dc.End();
dc.Begin(SpriteSortMode.Immediate, effect, Matrix.Identity);
var position = (Vector2)element.View.Display.DipsToPixels(target.VisualBounds.Location);
var positionRounded = new Vector2((Int32)position.X, (Int32)position.Y);
dc.Draw(target.ColorBuffer, positionRounded, null, Color.White, 0f, Vector2.Zero, Vector2.One, SpriteEffects.None, 0f);
dc.End();
dc.Begin(state);
}