2009-07-17 19 views
1

我在WPF窗口中有一個網格,並且在第一列包含一個標籤。我已經爲標籤應用了SkewTransform。如果我減少列的寬度的標籤顯示一半爲什麼只顯示一半標籤? [WPF]

Screenshot

alt text http://freephotoupload.net/images/673_Lable.jpg

我期待它顯示Prashant,我的主要目的是減少旁邊的標籤額外空白

XAML代碼

<Grid ShowGridLines="True"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="146.334" /> 
       <ColumnDefinition Width="94.666" /> 
      </Grid.ColumnDefinitions> 
      <Label Margin="0" VerticalAlignment="Center" Width="Auto" Name="label1" RenderTransformOrigin="0.5,0.5" Content="Prashant"> 
       <Label.RenderTransform> 
        <TransformGroup> 
         <ScaleTransform ScaleX="1" ScaleY="1"/> 
         <SkewTransform AngleX="0" AngleY="0"/> 
         <RotateTransform Angle="-90"/> 
         <TranslateTransform X="0" Y="0"/> 
        </TransformGroup> 
       </Label.RenderTransform> 
    </Label> 
</Grid> 

任何建議請...

+0

什麼是你的 「自定義」 命名空間?看起來你不使用普通的Transgorm。由於GreenReign說使用LayOutTransform來解決你的問題 – 2009-07-17 07:11:58

回答

2

做一個LayoutTransform而不是RenderTransform

在WPF中,RenderTransforms在控件佈局完成後執行。

在你的情況下,Label正在縮短列的寬度,第一;然後,應用RenderTransform(旋轉是唯一能做任何事的旋轉),導致它看起來奇怪的Label

A LayoutTransform在佈局控件之前完成。

像這樣:

<Grid ShowGridLines="True"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="146.334" /> 
     <ColumnDefinition Width="94.666" /> 
    </Grid.ColumnDefinitions> 
    <Label 
     Name="label1" 
     Content="Prashant" 
     Margin="0" 
     Width="Auto" 
     VerticalAlignment="Center" 
     RenderTransformOrigin="0.5,0.5"> 
     <Label.LayoutTransform> 
      <TransformGroup> 
       <ScaleTransform ScaleX="1" ScaleY="1"/> 
       <SkewTransform AngleX="0" AngleY="0"/> 
       <RotateTransform Angle="-90"/> 
       <TranslateTransform X="0" Y="0"/> 
      </TransformGroup> 
     </Label.LayoutTransform> 
    </Label> 
</Grid> 
相關問題