コード例 #1
0
        public void SetFrameSize(CGSize newFrameSize, bool animating)
        {
            CGRect newFrame = FrameForNewSizePinnedToTopLeft(newFrameSize);

            if (animating)
            {
                NSAnimation animation = new NSViewAnimation(new [] {
                    NSDictionary.FromObjectsAndKeys(
#if MONOMAC
                        new object[] { this, NSValue.FromRectangleF(Frame), NSValue.FromRectangleF(newFrame) },
#else
                        new object[] { this, NSValue.FromCGRect(Frame), NSValue.FromCGRect(newFrame) },
#endif
                        new object[] { NSViewAnimation.TargetKey, NSViewAnimation.StartFrameKey, NSViewAnimation.EndFrameKey }
                        )
                });
                animation.AnimationBlockingMode = NSAnimationBlockingMode.Nonblocking;
                animation.Duration = 0.25;
                animation.StartAnimation();
            }
            else
            {
                Superview.SetNeedsDisplayInRect(Frame);
                Frame        = newFrame;
                NeedsDisplay = true;
            }
        }