TextBlock 与 TextBox 填充 - XAML WPF
Posted
技术标签:
【中文标题】TextBlock 与 TextBox 填充 - XAML WPF【英文标题】:TextBlock vs TextBox Padding - XAML WPF 【发布时间】:2018-11-13 18:03:53 【问题描述】:我正在尝试在同一水平对齐上向文本块和文本框添加填充(因此两者的文本都从相同的水平位置开始),但在我看来,文本块与文本框的填充是关了吗?
我有这个代码:
<TextBox Text="Test"
BorderThickness="0"
Margin="0"
Padding="12,0,0,0" />
<TextBlock Text="Test"
Margin="0"
Padding="12,0,0,0" />
但在我的显示器上,显示如下(Stackpanel):
网格:
基本上,我的问题是,填充是一样的,那么水平对齐是怎么回事?
【问题讨论】:
使用标签而不是 TextBlock 可能会更幸运,因为后者实际上没有内容。 【参考方案1】:Padding 表示控件的边(可以是边距)与其内容之间的距离。
使用您的 Xaml,我使用了 Snoop 实用程序,发现文本框有更多的内部控制。例如边框,TextBoxView 等...参考下图。
但是,如果是 TextBlock,则没有。 Textbox控件中的控件之一是TextBoxView,查看它有2,0,2,0的边距。
我更改了 Margin = -1,0,0,0 并正确填充了内容。所以内容是对 textBoxView 的填充。并使 textBoxView 的 Margin 等于 -1,0,0,0。它看起来与 TextBlock 对齐是正确的。
【讨论】:
不能轻松修改XAML中TextBox
内部TextBoxView
的边距。 This answer 建议修改TextBox
的边距:Margin="-2 0 -2 0"
。至少在我的情况下这是有效的。以上是关于TextBlock 与 TextBox 填充 - XAML WPF的主要内容,如果未能解决你的问题,请参考以下文章
wpf <stackpanel> textblock和textbox啥意思
C#/WPF高手进!ComboBox.ItemTemplate用TextBlock正常,用TextBox就报错!