本文整理汇总了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;
}
示例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();
}
}