DirectX Text

Ich möchte mittels DirectX in meinem Fenster Grafiken und Text zeichnen.
Beides eigentlich kein Problem, doch möchte ich den Text zentriert zeichnen.
Und genau das klappt nicht.

Dim tFont As New System.Drawing.Font("Corbel", 10, FontStyle.Regular)
Dim descFont As New Direct3D.FontDescription
 descFont.FaceName = "Corbel" 
 descFont.Height = 16 descFont.Width = 10
 descFont.Quality = Direct3D.FontQuality.ClearType

Dim sFont As New Direct3D.Font(scDevice, descFont)
 sFont.DrawText(spriteBackground, "Test.", \_ 
 New Rectangle(0, 0, me.width, me.height), \_
 Direct3D.DrawTextFormat.Right, Color.Black)

Eigentlich müsste doch jetzt „Test.“ genau in der Mitte des Fensters stehen, doch es ist immer ein wenig nach links verschoben.

Muss ich dem Text noch eine Breite zuweisen, oder eine Autosize-Funktion aktivieren?

MCettle

Hallo!

Du setzt doch als Textformat TextFormat.Right. Warum sollte also der Text in der Mitte stehen? Normalerweise müsste er dann oben rechts in der Ecke sein. Vorausgesetzt, dein Me.Width und Me.Height stimmen mit der Bildschirmauflösung überein. Zentriert wird der Text mit DrawTextFormat.VerticalCenter Or DrawTextFormat.Center.
Ich bin mir auch nicht ganz sicher, was die FontDescription macht. Versuch doch mal, den Font ohne Übergabe der Description zu erzeugen. Wenn dann noch alles ist wie vorher, liegts jedenfalls schonmal nicht daran :wink:.

Nico