本文整理汇总了C#中SharpDX.DrawGeometry方法的典型用法代码示例。如果您正苦于以下问题:C# SharpDX.DrawGeometry方法的具体用法?C# SharpDX.DrawGeometry怎么用?C# SharpDX.DrawGeometry使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharpDX
的用法示例。
在下文中一共展示了SharpDX.DrawGeometry方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Render
internal static async Task Render(CompositionEngine compositionEngine, SharpDX.Direct2D1.RenderTarget renderTarget, FrameworkElement rootElement, Jupiter.Shapes.Path path)
{
var rect = path.GetBoundingRect(rootElement).ToSharpDX();
var fill = await path.Fill.ToSharpDX(renderTarget, rect);
var stroke = await path.Stroke.ToSharpDX(renderTarget, rect);
var layer = path.CreateAndPushLayerIfNecessary(renderTarget, rootElement);
var oldTransform = renderTarget.Transform;
renderTarget.Transform = new Matrix3x2(
1, 0, 0, 1, rect.Left, rect.Top);
//renderTarget.PushLayer(ref layerParameters, layer);
var d2dGeometry = path.Data.ToSharpDX(compositionEngine.D2DFactory, rect);
if (fill != null)
{
renderTarget.FillGeometry(d2dGeometry, fill, null);
}
if (stroke != null &&
path.StrokeThickness > 0)
{
renderTarget.DrawGeometry(
d2dGeometry,
stroke,
(float)path.StrokeThickness,
path.GetStrokeStyle(compositionEngine.D2DFactory));}
//if (path.StrokeThickness > 0 &&
// stroke != null)
//{
// var halfThickness = (float)(path.StrokeThickness * 0.5);
// roundedRect.Rect = rect.Eroded(halfThickness);
// if (fill != null)
// {
// renderTarget.FillRoundedRectangle(roundedRect, fill);
// }
// renderTarget.DrawRoundedRectangle(
// roundedRect,
// stroke,
// (float)path.StrokeThickness,
// path.GetStrokeStyle(compositionEngine.D2DFactory));
//}
//else
//{
// renderTarget.FillRoundedRectangle(roundedRect, fill);
//}
if (layer != null)
{
renderTarget.PopLayer();
layer.Dispose();
}
renderTarget.Transform = oldTransform;
}