我如何分配垂直中心对齐到文本块内的文本?我发现TextAlignment属性,但它是水平文本对齐。我怎么做垂直文本对齐?
当前回答
你可以使用标签而不是文本块。
<Label Content="Hello, World!">
<Label.LayoutTransform>
<RotateTransform Angle="270"/>
</Label.LayoutTransform>
</Label>
其他回答
我认为最好是使用一个标签(或TextBlock)变成一个标签,你不能直接在边界控件中附加鼠标事件,最后它附加在TextBlock中,这是我的建议:
<Label
Height="32"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Stretch"
MouseLeftButtonUp="MenuItem_MouseLeftButtonUp">
<TextBlock Padding="32 0 10 0">
Label with click event
</TextBlock>
</Label>
只是为了好玩,试试这个XAML吧。它不是完美的,因为它不是一个“对齐”,但它允许你调整一个段落中的文本对齐。
<TextBlock>
<TextBlock BaselineOffset="30">One</TextBlock>
<TextBlock BaselineOffset="20">Two</TextBlock>
<Run>Three</Run>
<Run BaselineAlignment="Subscript">Four</Run>
</TextBlock>
对我来说,VerticalAlignment=“中心”修复了这个问题。 这可能是因为textblock被包装在一个网格中,但实际上是wpf中的一切。
我认为这是明智的使用一个没有边界和背景的文本框作为一个简单而快速的方式,以达到中心对齐的文本块
<TextBox
TextWrapping="Wrap"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Background="{x:Null}"
BorderBrush="{x:Null}"
/>
TextBlock不支持其内容的垂直对齐。如果你必须使用TextBlock,那么你必须对齐它与它的父。
然而,如果你可以使用标签代替(他们确实有非常相似的功能),那么你可以定位文本内容:
<Label VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
I am centred text!
</Label>
默认情况下,标签将拉伸以填充其边界,这意味着标签的文本将居中。
推荐文章
- WPF和初始焦点
- 如何中心div垂直内绝对定位的父div
- WPF数据网格底部空行
- 窗口vs页面vs用户控件的WPF导航?
- 在窗口上设置设计时间DataContext是一个编译器错误?
- 调用线程必须是STA,因为许多UI组件都要求这一点
- ContentControl和ContentPresenter有什么区别?
- WPF中控制模板和数据模板的区别
- 如何隐藏关闭按钮在WPF窗口?
- UI线程上的任务继续
- Android:垂直对齐多行EditText(文本区域)
- WPF数据绑定:我如何访问“父”数据上下文?
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 我应该使用什么MVVM框架?
- 在WPF中引入一个窗口到前面