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


C# Geometry.GetTransformedCopy方法代码示例

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


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

示例1: 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)
        { 
            // Intersect the new clip with the current one

            // 1st case:- No change, keep the old clip
            // 2nd case:- No matter what, the intersection will also be empty 
            if ((clipGeometry == null)
                || 
                ((_currentClip!=null) && (_currentClip.IsEmpty()))) 
            {
                clipGeometry = _currentClip; 
            }
            else
            {
                // Transform the clip new if so prescribed 
                if ((_currentTransform != null) && !_currentTransform.IsIdentity)
                { 
                    clipGeometry = clipGeometry.GetTransformedCopy(_currentTransform); 
                }
 
                // Intersect it with the current clip
                if (_currentClip != null)
                {
                    clipGeometry = Geometry.Combine( 
                        _currentClip,
                        clipGeometry, 
                        GeometryCombineMode.Intersect, 
                        null);  // Transform
                } 
            }

            // Push the previous clip on the stack
            PushModifierStack(new ClipModifierNode(_currentClip)); 

            _currentClip = clipGeometry; 
        } 
开发者ID:sjyanxin,项目名称:WPFSource,代码行数:43,代码来源:HitTestWithGeometryDrawingContextWalker.cs

示例2: 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 ((geometry == null) || geometry.IsEmpty()) 
            {
                return; 
            } 

            Geometry testedGeometry; 

            // Transform if so prescribed
            if ((_currentTransform != null) && !_currentTransform.IsIdentity)
            { 
                testedGeometry = geometry.GetTransformedCopy(_currentTransform);
            } 
            else 
            {
                testedGeometry = geometry; 
            }

            // Clip, if so prescribed
            if (_currentClip != null) 
            {
                testedGeometry = Geometry.Combine( 
                    testedGeometry, 
                    _currentClip,
                    GeometryCombineMode.Intersect, 
                    null);  // transform
            }

            if (brush != null) 
            {
                AccumulateIntersectionDetail(testedGeometry.FillContainsWithDetail(_geometry)); 
            } 

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

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


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