2012-02-06 46 views
0

好的,再試一次。我想要的只是旋轉文本塊,沒有任何棘手。而且我不想使用ItemsControl來完成它,因爲它需要爲每個字母使用控件,這對我的需求來說太昂貴了。如何在不使用ItemsControl的情況下創建垂直文本塊?

enter image description here

+1

附:請不要盲目刪除它,因爲我的「聲譽太高」或其他一些這樣的無稽之談。嚴重的是,沒有必要這樣做。 – 2012-02-06 20:52:58

+0

[Wpf TextBlock中的垂直文本]的可能重複(http://stackoverflow.com/questions/349875/vertical-text-in-wpf-textblock) – 2012-02-06 20:55:00

+0

賞金*即使它已被接受,也要注意一個問題回答。 – 2012-02-06 20:55:55

回答

2

儘管如果它是一個重複與否的爭論,有可能是一種方式來實現在一個非常低的水平垂直文本,涉及GlyphRun。我沒有測試過,在細節,但我知道的是,你必須

  1. 創建GlyphRun與IsSideways屬性設置爲true,這意味着 所有字符將被逆時針旋轉90°,

  2. 得到DrawingContext和推(經由PushTransform)90°順時針RotateTransform到其上,

  3. 繪製GlyphRun到的DrawingContext。

獲得適當的DrawingContext的一種簡單方法是覆蓋UIElement.OnRender

注:GlyphRun的構造有13個參數,但最後6可以爲空:-)

+0

有趣。這絕對是我想進一步研究的內容。 – 2012-02-07 03:54:22

+0

太好了。我很想聽聽你是否用這種方法獲得成功。 – Clemens 2012-02-07 09:42:50

0
<TextBlock Width="7" HorizontalAlignment="Left"> 
     S<LineBreak/> 
     t<LineBreak/> 
     a<LineBreak/> 
     c<LineBreak/> 
     k 
</TextBlock> 
相關問題