WPF Canvas子控件Label无法居中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF Canvas子控件Label无法居中相关的知识,希望对你有一定的参考价值。
前台XAML代码:
<Canvas Name="hscrollCanvas" Grid.Column="0" ClipToBounds="True"> <Label Name="lbMessage" Height="50" FontSize="32" FontWeight="Bold" VerticalContentAlignment="Top" FontFamily="STZhongsong" Margin="0,0,0,0" Foreground="White" TextOptions.TextFormattingMode="Display" TextOptions.TextHintingMode="Fixed" TextOptions.TextRenderingMode="ClearType"/> </Canvas>
后台CS代码:
hscrollCanvas.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; lbMessage.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; lbMessage.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center;
我这样设置了为啥lbMessage的内容没有居中啊
你可以在Canvas内部加个Grid应该就能解决你问题。 参考技术A 在blend4里面编辑试试,把label拖到中间,看看代码然后变化
WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系
WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系:
1、Canvas/WrapPanel控件:
其子控件的HorizontalAlignment/VerticalAlignment属性无效。
2、Grid控件:
其子控件的HorizontalAlignment/VerticalAlignment属性有效。
3、StackPanel控件:
A、当其Orientation属性等于Horizontal时,其子控件的HorizontalAlignment属性无效,VerticalAlignment属性有效。
B、当其Orientation属性等于Vertical时,其子控件的HorizontalAlignment属性有效,VerticalAlignment属性无效。
4、DockPanel控件:
A、(适用于非末位子控件)当其子控件设定DockPanel.Dock=Left/Right时,其子控件的HorizontalAlignment属性无效,VerticalAlignment属性有效。
B、(适用于非末位子控件)当其子控件设定DockPanel.Dock=Top/Bottom时,其子控件的HorizontalAlignment属性有效,VerticalAlignment属性无效。
C、当其LastChildFill属性等于true时,其最后一个子控件的DockPanel.Dock无效,HorizontalAlignment属性有效,VerticalAlignment属性有效。
D、当其LastChildFill属性等于false时,其最后一个子控件的DockPanel.Dock有效,此时,如果该子控件设定DockPanel.Dock=Left/Right时,该子控件的HorizontalAlignment属性无效,VerticalAlignment属性有效,而如果该子控件设定DockPanel.Dock=Top/Bottom时,该子控件的HorizontalAlignment属性有效,VerticalAlignment属性无效。
以上是关于WPF Canvas子控件Label无法居中的主要内容,如果未能解决你的问题,请参考以下文章
2021-08-17 WPF控件专题 Canvas 控件详解