为什么我的文字会被裁剪?

时间:2009-03-30 19:06:31

标签: wpf user-interface xaml

当我尝试将文本块添加到边框元素时,我只看到文本的一部分。我将文本添加到边框后旋转文本,这是导致问题的原因。增加边框的宽度可以解决此问题。但是,我的边界只需要20个单位。

alt text http://img257.imageshack.us/img257/1702/textcrop.jpg

我在这里缺少什么?

        <Border
          Name="BranchBorder"
          CornerRadius="0"
          HorizontalAlignment="Left"
          Width="20">
          <TextBlock 
            Name="Branch" 
            FontSize="14"
            FontWeight="Bold"
            VerticalAlignment="Center">
           <TextBlock.RenderTransform>
             <RotateTransform 
               Angle="-90"/>
           </TextBlock.RenderTransform>
            Branch
          </TextBlock>
        </Border>

2 个答案:

答案 0 :(得分:7)

尝试使用LayoutTransform

    <Border
      Name="BranchBorder"
      CornerRadius="0"
      HorizontalAlignment="Left"
      Width="20">
      <TextBlock
         Name="Branch"
         FontSize="14"
        FontWeight="Bold"
        VerticalAlignment="Center">
       <TextBlock.LayoutTransform>
         <RotateTransform
            Angle="-90"/>
       </TextBlock.LayoutTransform>
        Branch
      </TextBlock>
    </Border>

有许多博客条目描述了RenderTransform and LayoutTransform之间的区别,这是来自Charles Petzold的一个很酷的视觉演示RenderTransformVersusLayoutTransform.xaml

答案 1 :(得分:0)

似乎文本在之前继承了<border>转换,旋转变换有机会旋转它。这意味着文本首先被裁剪为20个单位宽,然后被旋转-90度。

虽然我没有实际的解决方案,但我可以确认导致问题的转换顺序。