这是我的第一个应用程序,所以我很抱歉有点混乱的描述。
我想在全屏显示“你好世界” - 我下载了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 world”来使用它。
我做了相同的更改,并将SwapChainDescription.IsWindowed
设置为false
。但是这次它不能正常工作 - 我得到了全屏但是看起来我看起来有一些虚拟工作空间〜比显示器分辨率大4倍,显示器正在偷看它的左上角工作区。我只能看到文本的一部分,而且它已被拉伸。
所以有一个地方缩放开启,或者有一些不同于我设置的尺寸。但我没有看到任何有这种偏差的地方。
所以我的问题是 - 使用RenderTarget
时需要什么才能全屏? SharpDX的原始代码:
基类 - https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/DemoApp.cs(两种方法都相同)
使用swapchain的图层 - https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct3D11DemoApp.cs
并使用RenderTarget
- https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Common/Direct2D1DemoApp.cs
答案 0 :(得分:0)
区别的单行,因为交换链是在表单之后创建的,并且我在此时依赖于表单,首先需要显示表单。所以加上这个:
_form = new RenderForm("hello world")
{
WindowState = FormWindowState.Maximized,
IsFullscreen = true,
FormBorderStyle = FormBorderStyle.None
};
_form.Show(); // new !
我终于得到了预期的效果。