如何使用 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原始代码:
base class -- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/DemoApp.cs(两种方法都一样)
层与交换链 -- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct3D11DemoApp.cs
和class使用RenderTarget
-- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct2D1DemoApp.cs
单行的区别,因为交换链是在表单之后创建的,而我当时依赖于表单,所以需要首先显示表单。所以加上这个:
_form = new RenderForm("hello world")
{
WindowState = FormWindowState.Maximized,
IsFullscreen = true,
FormBorderStyle = FormBorderStyle.None
};
_form.Show(); // new !
终于得到了想要的效果
这是我的第一个应用程序,所以很抱歉描述有点混乱。
我想全屏显示 "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原始代码:
base class -- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/DemoApp.cs(两种方法都一样)
层与交换链 -- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct3D11DemoApp.cs
和class使用
RenderTarget
-- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct2D1DemoApp.cs
单行的区别,因为交换链是在表单之后创建的,而我当时依赖于表单,所以需要首先显示表单。所以加上这个:
_form = new RenderForm("hello world")
{
WindowState = FormWindowState.Maximized,
IsFullscreen = true,
FormBorderStyle = FormBorderStyle.None
};
_form.Show(); // new !
终于得到了想要的效果