【问题标题】:TextBlock vs TextBox Padding - XAML WPFTextBlock 与 TextBox 填充 - 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 可能会更幸运,因为后者实际上没有内容。

标签: c# wpf xaml


【解决方案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"。至少在我的情况下这是有效的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
相关资源
最近更新 更多