2013-11-14 65 views
1
<Label Grid.Row="1" 
     Height="70" 
     Margin="2" 
     Width="300" 
     Content="{l:Translate Key={x:Static l:MultistringTags.SHOW_MENU}}" 
     DockPanel.Dock="Bottom" 
     FontSize="20" 
     FontWeight="Bold" 
     Foreground="White"> 
     <Label.RenderTransform> 
      <RotateTransform Angle="270" /> 
     </Label.RenderTransform> 
</Label> 

這裏我想旋轉文本,它是在一個網格內,並且網格的列寬等於文本高度。在這種情況下,我只看到文本的一部分,就好像文本沒有按照網格寬度旋轉切割,並旋轉到所需的角度。我嘗試過面板,他們給我相同的結果。旋轉小網格/面板內的文本

有沒有人知道一些解決方法,使其顯示所有文本,我不想使用圖像,因爲文本應該是可翻譯的。

+0

你可以嘗試用具有textwrapping屬性的textblock替換標籤,或者甚至將textblock放在標籤內 – Santux

回答

4

我相信,如果將其更改爲設置LayoutTransform而不是RenderTransform,它將防止文本被截斷。

 <Label.LayoutTransform> 
      <RotateTransform Angle="270" /> 
     </Label.LayoutTransform> 
+0

謝謝,您的回覆非常有幫助。 –

+0

@VladimirKruglov如果它解決了您的問題,請務必將其標記爲幫助未來看到此問題的其他人的答案=) –

1

繼@ nekizalb的回答,說明你應該使用LayoutTransform,你需要做的使用RenderTransform的那個,而不是原因,是因爲每一個出現在該時機......一個LayoutTransform會影響佈局結果。

UIElement.RenderTransform Property頁面上MSDN:

的呈現變換不會重新佈局大小或呈現大小的信息。渲染變換通常用於對元素進行動畫處理或應用臨時效果。例如,該元素可能會在聚焦或蒙上陰影時放大,或者可能會在加載時產生抖動,以引起用戶界面(UI)部分的注意。

FrameworkElement.LayoutTransform Property頁面上MSDN:

與此相反的RenderTransform,LayoutTransform會影響佈局的結果。

實施例場景中LayoutTransform將是有用的包括:旋轉元件,例如從水平到垂直或者反之亦然菜單組件,縮放上聚焦元件(放大),提供編輯行爲等