这是我的第一个应用程序,所以我很抱歉有点混乱的描述。
我想在全屏上展示"hello world“--我下载了SharpDX示例,这里有"hello world”示例。我将创建呈现表单更改为:
_form = new RenderForm("hello world")
{
WindowState = FormWindowState.Maximized,
IsFullscreen = true,
FormBorderStyle = FormBorderStyle.None
};然后使用_form.Width/_form.Height作为大小值,在绘制文本时设置WindowRenderTarget和矩形大小的属性。
它工作,大小是正确的,文本没有模糊(这意味着它没有拉伸,这将影响使用不同的尺寸)。
这种方法使用WindowRenderTarget,我注意到在SharpDX示例中也有类(Direct2D1DemoApp)使用RenderTarget,所以我切换了"hello“来使用它。
我做了同样的更改,还将SwapChainDescription.IsWindowed设置为false。然而,这一次它也不起作用了--我得到了全屏,但看起来我有比显示器分辨率大4倍的虚拟工作区,监视器只是在窥视那个工作区的左上角。我只能看到文本的一部分,而且它被拉伸了。
因此,在某个地方启动了缩放,或者有一些大小与我设置的不同。但我看不出有什么地方会有这样的偏差。
所以我的问题是--当使用RenderTarget时,获得全屏还需要什么?SharpDX的原始代码:
RenderTarget - https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct2D1DemoApp.cs的发布于 2017-10-06 10:45:28
差异的单行,因为交换链是在表单之后创建的,而我在这一点上依赖于表单,首先需要显示表单。因此,有了这个增加:
_form = new RenderForm("hello world")
{
WindowState = FormWindowState.Maximized,
IsFullscreen = true,
FormBorderStyle = FormBorderStyle.None
};
_form.Show(); // new !我终于达到了预期的效果。
https://stackoverflow.com/questions/46603321
复制相似问题