我创建了包含TextBlock的装饰器。 此TextBlock与装饰的TextBox重叠。 问题是这些控件的文本起始位置不一样。 如何对齐TextBlock以实现文本位置的匹配?
答案 0 :(得分:3)
除了调整装饰层中TextBlock边距的明显之外,还有另一种可能的方法。在不知道你的真正目标是什么的情况下(除了在TextBox上定位文本之外)很难说这是否会有所帮助,但是这里有。
你可以use a VisualBrush包含你在adorner图层中使用的TextBlock(这种技术不使用adorner图层)。然后将VisualBrush应用于TextBox的背景。这会将文本准确定位在TextBox中。当然,当TextBox为空时,这种技术最有用,因此只有VisualBrush的TextBlock中的文本是可见的(而不是TextBox中的任何其他文本也可见)。
当TextBox为空时,我使用此技术显示“提示文本”(此处显示的是ErrorTemplate和提示文本的可能组合,但您明白了)。 “0到159”文本是VisualBrush中的一个TextBlock,它在Text属性为空时应用于TextBox的背景:
也许有关您的目标的更多信息,我们也可以建议其他方法。