本文整理汇总了C#中IRenderContext.GetImageInfo方法的典型用法代码示例。如果您正苦于以下问题:C# IRenderContext.GetImageInfo方法的具体用法?C# IRenderContext.GetImageInfo怎么用?C# IRenderContext.GetImageInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRenderContext
的用法示例。
在下文中一共展示了IRenderContext.GetImageInfo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Render
/// <summary>
/// Renders the image annotation.
/// </summary>
/// <param name="rc">
/// The render context.
/// </param>
/// <param name="model">
/// The plot model.
/// </param>
public override void Render(IRenderContext rc, PlotModel model)
{
base.Render(rc, model);
var p = this.GetPoint(this.X, this.Y, rc, model);
var o = this.GetVector(this.OffsetX, this.OffsetY, rc, model);
var position = p + o;
var clippingRect = this.GetClippingRect();
var imageInfo = rc.GetImageInfo(this.ImageSource);
if (imageInfo == null)
{
return;
}
var s = this.GetVector(this.Width, this.Height, rc, model);
var width = s.X;
var height = s.Y;
if (double.IsNaN(width) && double.IsNaN(height))
{
width = imageInfo.Width;
height = imageInfo.Height;
}
if (double.IsNaN(width))
{
width = height / imageInfo.Height * imageInfo.Width;
}
if (double.IsNaN(height))
{
height = width / imageInfo.Width * imageInfo.Height;
}
double x = position.X;
double y = position.Y;
if (this.HorizontalAlignment == HorizontalAlignment.Center)
{
x -= width * 0.5;
}
if (this.HorizontalAlignment == HorizontalAlignment.Right)
{
x -= width;
}
if (this.VerticalAlignment == VerticalAlignment.Middle)
{
y -= height * 0.5;
}
if (this.VerticalAlignment == VerticalAlignment.Bottom)
{
y -= height;
}
this.actualBounds = new OxyRect(x, y, width, height);
if (this.X.Unit == PlotLengthUnit.Data || this.Y.Unit == PlotLengthUnit.Data)
{
rc.DrawClippedImage(clippingRect, this.ImageSource, x, y, width, height, this.Opacity, this.Interpolate);
}
else
{
rc.DrawImage(this.ImageSource, x, y, width, height, this.Opacity, this.Interpolate);
}
}