在WPF的TextBox旋转文本不旋转控件本身
问题描述:
的问题是:我怎么能旋转WPF的TextBox 里面的文本,而不旋转文本框本身? (Rotate text only)
我已经尝试了不同的RenderTransforms,LayoutTransforms但这并没有帮助我。在WPF的TextBox旋转文本不旋转控件本身
答
发现回答自己:把文本框等的控制,也就是里面的RichTextBox:
<RichTextBox>
<FlowDocument>
<Paragraph>
<TextBlock Text="Stacked text!">
<TextBlock.LayoutTransform>
<RotateTransform Angle="-90"></RotateTransform>
</TextBlock.LayoutTransform>
</TextBlock>
</Paragraph>
</FlowDocument>
</RichTextBox>
答
我要说的是正确的解决你的问题是定义一个定制ControlTemplate
为TextBox
和应用RotateTransform
到ScrollViewer
元件:
<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>
只能旋转文字? – Sajeetharan
是,旋转文本只有 – user306080
我不认为它可能 – Sajeetharan