在WPF的TextBox旋转文本不旋转控件本身

问题描述:

的问题是:我怎么能旋转WPF的TextBox 里面的文本,而不旋转文本框本身? (Rotate text only) 我已经尝试了不同的RenderTransforms,LayoutTransforms但这并没有帮助我。在WPF的TextBox旋转文本不旋转控件本身

+1

只能旋转文字? – Sajeetharan

+0

是,旋转文本只有 – user306080

+1

我不认为它可能 – Sajeetharan

发现回答自己:把文本框等的控制,也就是里面的RichTextBox:

<RichTextBox> 
    <FlowDocument> 
     <Paragraph> 
      <TextBlock Text="Stacked text!"> 
      <TextBlock.LayoutTransform> 
      <RotateTransform Angle="-90"></RotateTransform> 
      </TextBlock.LayoutTransform> 
      </TextBlock> 
     </Paragraph> 
     </FlowDocument> 
    </RichTextBox> 

我要说的是正确的解决你的问题是定义一个定制ControlTemplateTextBox和应用RotateTransformScrollViewer元件:

<TextBox Background="Yellow" Text="test"> 
    <TextBox.Template> 
     <ControlTemplate TargetType="{x:Type TextBox}"> 
      <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> 
       <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> 
        <ScrollViewer.LayoutTransform> 
         <RotateTransform Angle="-90"></RotateTransform> 
        </ScrollViewer.LayoutTransform> 
       </ScrollViewer> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsEnabled" Value="false"> 
        <Setter Property="Opacity" TargetName="border" Value="0.56"/> 
       </Trigger> 
       <Trigger Property="IsMouseOver" Value="true"> 
        <Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/> 
       </Trigger> 
       <Trigger Property="IsKeyboardFocused" Value="true"> 
        <Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </TextBox.Template> 
</TextBox>