![](/img/trans.png)
[英]How to initialize Directwrite IDWriteTextLayout properly in a Direct2D window
[英]How to wrap text around images or abstract shapes in DirectWrite with Direct2D?
我找不到未渲染到矩形區域的文本塊示例。
理想情況下,如果ID2D1HwndRenderTarget.DrawText()
能讓我提供多邊形Geometry
而不是矩形,那就太好了。
我嘗試添加一個帶有contentBounds
的 Direct2D 層,認為它可能會跳過這些層中的文本渲染。 它沒有按預期工作,它只是阻止渲染到仍在模擬下面的文本的區域。
我還嘗試將矩形區域應用於hwnd
窗口本身。 它也阻止了渲染,但沒有移動文本。
IDWriteTextLayout
僅支持矩形布局,但 DirectWrite 支持使用低級功能(文本分析、字形測量、字形整形)您可以想到的任何形狀。 從頭開始編寫自己的文本布局並非易事,但我編寫了一個 Windows 7 SDK 示例,其中包含一個“FlowLayout”,它演示了一個圓形和其他一些簡單的形狀。 它不需要任意幾何圖形,但您可以根據自己的需要進行調整(請參閱 FlowLayoutSource::GetNextRect 以計算每條線的寬度)。
https://github.com/pauldotknopf/WindowsSDK7-Samples/tree/master/multimedia/DirectWrite/CustomLayout
DirectWrite 僅支持矩形布局,因此您無法自動獲得更復雜的內容。 如果您希望它以不同的方式工作,則必須自己實現布局功能。 就像您已經觀察到的那樣,剪輯參數與文本布局無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.