private void JudgePostion() { if (XwtImage != null) { var pixbuf = XwtImage.GetPixbuf(); var w = ShowPaned.Child.Allocation.Right - 2 * ImageBorder; var h = ShowPaned.Child.Allocation.Height - expanderHeight - 2 * ImageBorder; double scalespanh = (double)h / (double)pixbuf.Height; double scalespanw = (double)w / (double)pixbuf.Width; double scalespan = scalespanh < scalespanw ? scalespanh : scalespanw; var width = (int)(pixbuf.Width * scalespan); width = width > (int)(pixbuf.Width * scalespan) ? width : (int)(pixbuf.Width * scalespan); var heigth = (int)(pixbuf.Height * scalespan); heigth = heigth > (int)(pixbuf.Height * scalespan) ? heigth : (int)(pixbuf.Height * scalespan); this.showImage.Pixbuf = pixbuf.ScaleSimple(width, heigth, Gdk.InterpType.Bilinear); this.showImage.GrabFocus(); this.showImage.ShowNow(); this.showImage.ShowAll(); } }