2017-10-06 2 views
0

Dies ist meine erste App, es tut mir leid für ein bisschen chaotische Beschreibung.Wie kann man einen Text im Vollbildmodus mit RenderTarget anzeigen?

Ich möchte "Hallo Welt" im Vollbildmodus zeigen - ich habe SharpDX Samples heruntergeladen, es gibt "Hallo Welt" Probe dort. Ich habe die Schaffung der Render Form:

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

und verwenden dann _form.Width/_form.Height als Größenwerte für Eigenschaften von WindowRenderTarget und Rechteckgröße eingestellt wird, wenn Text zeichnen.

Es funktioniert, die Größen sind korrekt, der Text ist nicht verschwommen (was bedeutet, dass es nicht gestreckt wird, was wäre der Effekt der Verwendung unterschiedlicher Größen).

Dieser Ansatz verwendet WindowRenderTarget und ich bemerkte, es gibt auch Klasse (Direct2D1DemoApp) mit RenderTarget in SharpDX Proben, so dass ich "Hallo Welt" um es zu verwenden.

Ich habe die gleichen Änderungen und auch ich SwapChainDescription.IsWindowed auf false gesetzt. Dieses Mal funktioniert es aber nicht so gut - ich habe den ganzen Bildschirm, aber so, dass es aussieht. Ich habe einen virtuellen Arbeitsplatz ~ 4 mal größer als die Monitorauflösung, und der Monitor späht nur in die obere linke Ecke davon Arbeitsplatz. Ich kann nur einen Teil des Textes sehen und er ist gestreckt.

Es ist also irgendwo Skalierung eingeschaltet, oder es gibt eine andere Größe als das, was ich eingestellt habe. Aber ich sehe keinen Ort mit einer solchen Abweichung.

Also meine Frage ist - wenn Sie RenderTarget verwenden, was sonst noch benötigt wird, um den ganzen Bildschirm zu bekommen? Original-Codes von SharpDX:

Antwort

0

Eine Zeile der Differenz, da die Tauschkette erstellt wird a Nach der Form und ich verlasse mich auf die Form an diesem Punkt, zeigt die Form an erster Stelle ist erforderlich. Also mit dieser Ergänzung:

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

_form.Show(); // new ! 

Ich bekam endlich den gewünschten Effekt.

Verwandte Themen