コード例 #1
0
        internal void EnsureRenderedGeometry()
        {
            if (_renderedGeometry == null)
            {
                _renderedGeometry = DefiningGeometry;

                Debug.Assert(_renderedGeometry != null);

                if (Stretch != Stretch.None)
                {
                    Geometry currentValue = _renderedGeometry.CloneCurrentValue();
                    if (Object.ReferenceEquals(_renderedGeometry, currentValue))
                    {
                        _renderedGeometry = currentValue.Clone();
                    }
                    else
                    {
                        _renderedGeometry = currentValue;
                    }

                    Transform renderedTransform = _renderedGeometry.Transform;

                    BoxedMatrix boxedStretchMatrix = StretchMatrixField.GetValue(this);
                    Matrix      stretchMatrix      = (boxedStretchMatrix == null) ? Matrix.Identity : boxedStretchMatrix.Value;
                    if (renderedTransform == null || renderedTransform.IsIdentity)
                    {
                        _renderedGeometry.Transform = new MatrixTransform(stretchMatrix);
                    }
                    else
                    {
                        _renderedGeometry.Transform = new MatrixTransform(renderedTransform.Value * stretchMatrix);
                    }
                }
            }
        }
コード例 #2
0
 // Token: 0x06000F83 RID: 3971 RVA: 0x0003C3F0 File Offset: 0x0003A5F0
 internal void EnsureRenderedGeometry()
 {
     if (this._renderedGeometry == null)
     {
         this._renderedGeometry = this.DefiningGeometry;
         if (this.Stretch != Stretch.None)
         {
             Geometry geometry = this._renderedGeometry.CloneCurrentValue();
             if (this._renderedGeometry == geometry)
             {
                 this._renderedGeometry = geometry.Clone();
             }
             else
             {
                 this._renderedGeometry = geometry;
             }
             Transform   transform = this._renderedGeometry.Transform;
             BoxedMatrix value     = Shape.StretchMatrixField.GetValue(this);
             Matrix      matrix    = (value == null) ? Matrix.Identity : value.Value;
             if (transform == null || transform.IsIdentity)
             {
                 this._renderedGeometry.Transform = new MatrixTransform(matrix);
                 return;
             }
             this._renderedGeometry.Transform = new MatrixTransform(transform.Value * matrix);
         }
     }
 }