當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。