protected override Size ArrangeOverride(Size finalSize) { Psize size; DwmUtils.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)); }
protected override Size MeasureOverride(Size availableSize) { Psize size; DwmUtils.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)); ; }