本文整理汇总了C#中Ellipse.CreateAndPushLayerIfNecessary方法的典型用法代码示例。如果您正苦于以下问题:C# Ellipse.CreateAndPushLayerIfNecessary方法的具体用法?C# Ellipse.CreateAndPushLayerIfNecessary怎么用?C# Ellipse.CreateAndPushLayerIfNecessary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ellipse
的用法示例。
在下文中一共展示了Ellipse.CreateAndPushLayerIfNecessary方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Render
internal static async Task Render(CompositionEngine compositionEngine, SharpDX.Direct2D1.RenderTarget renderTarget, FrameworkElement rootElement, Ellipse ellipse)
{
var rect = ellipse.GetBoundingRect(rootElement).ToSharpDX();
var d2dEllipse = new D2D.Ellipse(
new Vector2(
(float)((rect.Left + rect.Right) * 0.5),
(float)((rect.Top + rect.Bottom) * 0.5)),
(float)(0.5 * rect.Width),
(float)(0.5 * rect.Height));
var fill = await ellipse.Fill.ToSharpDX(renderTarget, rect);
var layer = ellipse.CreateAndPushLayerIfNecessary(renderTarget, rootElement);
var stroke = await ellipse.Stroke.ToSharpDX(renderTarget, rect);
if (ellipse.StrokeThickness > 0 &&
stroke != null)
{
var halfStrokeThickness = (float)(ellipse.StrokeThickness * 0.5);
d2dEllipse.RadiusX -= halfStrokeThickness;
d2dEllipse.RadiusY -= halfStrokeThickness;
if (fill != null)
{
renderTarget.FillEllipse(d2dEllipse, fill);
}
renderTarget.DrawEllipse(
d2dEllipse,
stroke,
(float)ellipse.StrokeThickness,
ellipse.GetStrokeStyle(compositionEngine.D2DFactory));
}
else if (fill != null)
{
renderTarget.FillEllipse(d2dEllipse, fill);
}
if (layer != null)
{
renderTarget.PopLayer();
layer.Dispose();
}
}