2017-10-06 131 views
0

這是我的第一個應用程序,所以我很抱歉有點混亂的描述。如何使用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示例中也有類Direct2D1DemoApp使用RenderTarget,所以我切換「hello world」來使用它。

我做了同樣的更改,我也設置SwapChainDescription.IsWindowedfalse。但是這一次它不起作用 - 我全屏顯示,但看起來我有一些虛擬工作空間,比顯示器分辨率大4倍,顯示器只是在左上角偷看工作區。我只能看到文本的一部分,並且它被拉長了。

所以有一些地方縮放打開,或有一些大小不同於我設置。但我沒有看到任何有這種偏差的地方。

所以我的問題是 - 當使用RenderTarget還需要什麼才能獲得全屏? SharpDX的原始代碼:

回答

0

單行的區別,自交換鏈創建以來形式和我在這一點上依靠的形式,首先顯示形式是必需的。所以有了這個加法:

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

_form.Show(); // new ! 

我終於得到了預期的效果。