如何使用 RenderTarget 全屏显示文本?

How to display a text in fullscreen using RenderTarget?

这是我的第一个应用程序,所以很抱歉描述有点混乱。

我想全屏显示 "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 示例中也有 class (Direct2D1DemoApp) 使用 RenderTarget,所以我切换 "hello world" 以使用它。

我做了相同的更改,并将 SwapChainDescription.IsWindowed 设置为 false。然而这一次它并没有很好地工作——我得到了全屏,但是看起来我有一些虚拟工作空间~比显示器分辨率大 4 倍,而且显示器只是在它的左上角偷看工作区。我只能看到部分文字,而且它被拉伸了。

所以某处缩放比例打开了,或者有些尺寸与我设置的不同。但是我没有看到任何地方有这样的偏差。

所以我的问题是 - 使用 RenderTarget 时还需要什么才能全屏显示? SharpDX原始代码:

单行的区别,因为交换链是在表单之后创建的,而我当时依赖于表单,所以需要首先显示表单。所以加上这个:

_form = new RenderForm("hello world")
{
  WindowState = FormWindowState.Maximized,
  IsFullscreen = true,
  FormBorderStyle = FormBorderStyle.None
};

_form.Show(); // new !

终于得到了想要的效果