相对于屏幕c#winforms更改bg图像

时间:2016-10-14 07:56:45

标签: c# image winforms background positioning

以下是我所拥有的:

        var rand = new Random();
        var files = Directory.GetFiles("C:/Projects/MOMENTUM/MOMENTUM/pics/", "*.jpg");
        Image bgimage = new Bitmap(files[rand.Next(files.Length)]);
        BackgroundImage = bgimage;

        Rectangle UsedScreen = Screen.FromControl(this).Bounds;
        if (UsedScreen.Height / UsedScreen.Width > bgimage.Height / bgimage.Width)
        {
            //SET IMAGE HEIGHT TO SCREEN HEIGHT
        }
        else
        {
            //SET IMAGE WIDTH TO SCREEN WIDTH
        }

如您所见,我首先从特定文件夹中选择一个随机图像,然后将其设置为背景图像。

我希望此应用程序以全屏运行。但是,如果我将bgimage ImageLayout属性设置为Zoom,则会出现这种丑陋的边框,如果我将其设置为拉伸,则看起来很糟糕。

我想实现以下目标:

我通过屏幕边界获取当前使用的屏幕大小,然后调整图像以适应屏幕而不会失真。

部分图像将被删除,但主要目的是整个屏幕始终由图像填充(请参阅if中的注释)。我不知道该怎么做,因为如果我尝试

bgimage.Height = UsedScreen.Height

我无法覆盖图像高度。

有什么想法吗?

0 个答案:

没有答案