当前位置: 首页>>代码示例>>C#>>正文


C# SharpDX.FillGeometry方法代码示例

本文整理汇总了C#中SharpDX.FillGeometry方法的典型用法代码示例。如果您正苦于以下问题:C# SharpDX.FillGeometry方法的具体用法?C# SharpDX.FillGeometry怎么用?C# SharpDX.FillGeometry使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SharpDX的用法示例。


在下文中一共展示了SharpDX.FillGeometry方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
        }
开发者ID:cstehreem,项目名称:WinRTXamlToolkit,代码行数:58,代码来源:PathRenderer.cs

示例2: Render

        internal static void Render(CompositionEngine compositionEngine, SharpDX.Direct2D1.RenderTarget renderTarget, FrameworkElement rootElement, Border border)
        {
            var rect = border.GetBoundingRect(rootElement).ToSharpDX();
            var brush = border.Background.ToSharpDX(renderTarget, rect);

            var geometry = GetBorderFillGeometry(compositionEngine, border, rect);

            //var layer = new Layer(renderTarget);
            //var layerParameters = new LayerParameters();
            //layerParameters.ContentBounds = rect;
            //renderTarget.PushLayer(ref layerParameters, layer);

            renderTarget.FillGeometry(geometry, brush);

            //renderTarget.PopLayer();

            compositionEngine.RenderChildren(renderTarget, rootElement, border);
        }
开发者ID:stavrianosy,项目名称:BudgetManagementAssistant,代码行数:18,代码来源:BorderRenderer.cs

示例3: Render

        internal static async Task Render(CompositionEngine compositionEngine, SharpDX.Direct2D1.RenderTarget renderTarget, FrameworkElement rootElement, Border border)
        {
            var rect = border.GetBoundingRect(rootElement).ToSharpDX();
            var brush = await border.Background.ToSharpDX(renderTarget, rect);

            if (brush != null)
            {
                var geometry = GetBorderFillGeometry(compositionEngine, border, rect);

                var layer = border.CreateAndPushLayerIfNecessary(renderTarget, rootElement);

                renderTarget.FillGeometry(geometry, brush);

                if (layer != null)
                {
                    renderTarget.PopLayer();
                    layer.Dispose();
                }
            }

            await compositionEngine.RenderChildren(renderTarget, rootElement, border);
        }
开发者ID:siatwangmin,项目名称:WinRTXamlToolkit,代码行数:22,代码来源:BorderRenderer.cs


注:本文中的SharpDX.FillGeometry方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。