Пример #1
0
        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();
            }
        }