视频宽度必须可被8整除

时间:2014-06-06 03:31:16

标签: c# winforms size aspect-ratio

我有一个表单可以捕获两个显示器的所有屏幕,但我一直收到一条消息"视频宽度必须能被8整除。"当我从辅助线程运行此代码并且屏幕大小为:

1366w x 768h在第二台显示器上。

如果我在主线程上运行此代码它可以工作,不确定这是否重要,但我仍然无法弄清楚它是如何知道它的视频"。我已经尝试过整理价值观,但仍然没有做到,我知道问题出现在某个地方的代码中,但有人可以告诉我们是否有办法防止这种情况发生?

此代码返回所有屏幕的maxwidth和maxheight。

                int noofscreens = 0;
                Screen[] allScreens;
                allScreens = Screen.AllScreens;
                noofscreens = allScreens.Length;

                int maxwidth = 0, maxheight = 0;
                int boundValueX = 0, boundValueY = 0;
                for (int i = 0; i < noofscreens; i++)
                {
                    // WIDTH
                    if (allScreens[i].Bounds.X >= 0)
                    {
                        if (maxwidth < (allScreens[i].Bounds.X + allScreens[i].Bounds.Width)) maxwidth = allScreens[i].Bounds.X + allScreens[i].Bounds.Width;
                    }
                    else if (allScreens[i].Bounds.X < 0)
                    {
                        maxwidth = maxwidth + allScreens[i].Bounds.X;
                        boundValueX = allScreens[i].Bounds.X;
                    }
                    // HEIGHT
                    if (allScreens[i].Bounds.Y >= 0)
                    {
                        if (maxheight < (allScreens[i].Bounds.Y + allScreens[i].Bounds.Height)) maxheight = allScreens[i].Bounds.Y + allScreens[i].Bounds.Height;
                    }
                    else if (allScreens[i].Bounds.Y < 0)
                    {
                        maxheight = maxheight + allScreens[i].Bounds.Y;
                        boundValueY = allScreens[i].Bounds.Y;
                    }
                }

感谢。

0 个答案:

没有答案