【问题标题】:How to display a text in fullscreen using RenderTarget?如何使用 RenderTarget 全屏显示文本?
【发布时间】:2017-10-06 18:45:28
【问题描述】:

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

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

我做了同样的更改,并将SwapChainDescription.IsWindowed 设置为false。但是这次它效果不佳——我得到了全屏显示,但看起来我有一些虚拟工作区,比显示器分辨率大 4 倍左右,而显示器只是在左上角偷看工作区。我只能看到文本的一部分,而且它被拉伸了。

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

所以我的问题是——当使用RenderTarget 时,还需要什么才能获得全屏? SharpDX的原始代码:

【问题讨论】:

    标签: c# directx-11 sharpdx


    【解决方案1】:

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

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

    我终于得到了想要的效果。

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 2011-02-26
      • 2011-09-19
      • 2015-10-22
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多