DwmQueryThumbnailSourceSize() private method

private DwmQueryThumbnailSourceSize ( IntPtr HThumbnail, Size &size ) : int
HThumbnail System.IntPtr
size Size
return int
示例#1
0
        protected override Size MeasureOverride(Size availableSize)
        {
            try
            {
                DWM.Size size;
                DWM.DwmQueryThumbnailSourceSize(this.thumb, out size);

                double scale = 1;

                // our preferred size is the thumbnail source size
                // if less space is available, we scale appropriately
                if (size.Width > availableSize.Width)
                {
                    scale = availableSize.Width / size.Width;
                }
                if (size.Height > availableSize.Height)
                {
                    scale = Math.Min(scale, availableSize.Height / size.Height);
                }

                return(new Size(size.Width * scale, size.Height * scale));
            }
            catch (DllNotFoundException) { }
            return(new Size());
        }
示例#2
0
        protected override Size ArrangeOverride(Size finalSize)
        {
            try
            {
                DWM.Size size;
                DWM.DwmQueryThumbnailSourceSize(this.thumb, out size);

                // scale to fit whatever size we were allocated
                double scale = finalSize.Width / size.Width;
                scale = Math.Min(scale, finalSize.Height / size.Height);

                return(new Size(size.Width * scale, size.Height * scale));
            }
            catch (DllNotFoundException)
            {
                return(default(Size));
            }
        }