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


C# Geometry.FillContains方法代码示例

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


在下文中一共展示了Geometry.FillContains方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DrawGeometry

        /// <summary>
        ///     DrawGeometry -
        ///     Draw a Geometry with the provided Brush and/or Pen.
        ///     If both the Brush and Pen are null this call is a no-op.
        /// </summary>
        /// <param name="brush">
        ///     The Brush with which to fill the Geometry.
        ///     This is optional, and can be null, in which case no fill is performed.
        /// </param>
        /// <param name="pen">
        ///     The Pen with which to stroke the Geometry.
        ///     This is optional, and can be null, in which case no stroke is performed.
        /// </param>
        /// <param name="geometry"> The Geometry to fill and/or stroke. </param>
        public override void DrawGeometry(
            Brush brush,
            Pen pen,
            Geometry geometry)
        {
            if (IsCurrentLayerNoOp ||(geometry == null) || geometry.IsEmpty())
            {
                return;
            }

            if (brush != null)
            {
                _contains |= geometry.FillContains(_point);
            }

            // If we have a pen and we haven't yet hit, try the widened geometry.
            if ((pen != null) && !_contains)
            {
                _contains |= geometry.StrokeContains(pen, _point);
            }

            // If we've hit, stop walking.
            if (_contains)
            {
                StopWalking();
            }
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:41,代码来源:HitTestWithPointDrawingContextWalker.cs

示例2: IsPointWithinGeometry

        //public static PathGeometry GetRotatedGeometry(Rect rect, float rotationDegrees, Vector3 rotationCenter)
        //{
        //    var positions = new List<Vector3>
        //    {
        //        new Vector3((float)rect.BottomRight.X,(float)rect.BottomRight.Y,0),                
        //        new Vector3((float)rect.BottomLeft.X,(float)rect.BottomLeft.Y,0),
        //        new Vector3((float)rect.TopLeft.X,(float)rect.TopLeft.Y,0),
        //        new Vector3((float)rect.TopRight.X,(float)rect.TopRight.Y,0),
        //    };

        //    return GetRotatedGeometry(positions, rotationDegrees, rotationCenter);
        //}

        //public static PathGeometry GetRotatedGeometry(List<Vector3> positions, float rotationDegrees, Vector3 rotationCenter)
        //{
        //    if (!positions.Any())
        //        return null;

        //    var rotationTransform = new RotateTransform(rotationDegrees, rotationCenter.X, rotationCenter.Y);
        //    var figures = new List<PathFigure>();
        //    var segments = positions.Select(position =>
        //    {
        //        var point = new Point(position.X, position.Y);
        //        var rotatedPoint = rotationTransform.Transform(point);
        //        return new System.Windows.Media.LineSegment(rotatedPoint, false);

        //    }).ToList();

        //    var firstSegment = segments.First();
        //    segments.RemoveAt(0);
        //    figures.Add(new PathFigure(firstSegment.Point, segments, true));
        //    var geo = new PathGeometry(figures, FillRule.Nonzero, null);
        //    geo.GetOutlinedPathGeometry();                        
        //    return geo;
        //}

        public static bool IsPointWithinGeometry(Geometry geom, Vector3 point)
        {
            return geom.FillContains(new Point(point.X, point.Y));
        }
开发者ID:dachidahu,项目名称:AutoFollow,代码行数:40,代码来源:MathUtil.cs

示例3: PushClip

        /// <summary>
        ///     PushClip -
        ///     Push a clip region, which will apply to all drawing primitives until the
        ///     corresponding Pop call.
        /// </summary>
        /// <param name="clipGeometry"> The Geometry to which we will clip. </param>
        public override void PushClip(
            Geometry clipGeometry)
        {
            if (!IsPushNoOp())
            {
                PushPointStack(_point);

                // If the clip being pushed doesn't contain the hit test point,
                // then we don't need to consider any of the subsequent Drawing
                // operations in this layer.
                if ((clipGeometry != null) && !clipGeometry.FillContains(_point))
                {
                    IsCurrentLayerNoOp = true;
                }
            }
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:22,代码来源:HitTestWithPointDrawingContextWalker.cs

示例4: IsItemInGeometry

        private bool IsItemInGeometry(object item, Geometry geometry)
        {
            var container = ItemContainerGenerator.ContainerFromItem(item) as UIElement;
            Point? viewportPosition;

            return container != null &&
                (viewportPosition = MapPanel.GetViewportPosition(container)).HasValue &&
                geometry.FillContains(viewportPosition.Value);
        }
开发者ID:bhanu475,项目名称:XamlMapControl,代码行数:9,代码来源:MapItemsControl.WPF.cs


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