【问题标题】:Explicitly indicating whitespace in a WPF TextBox在 WPF 文本框中显式指示空格
【发布时间】:2017-02-10 10:44:08
【问题描述】:

我想要一个 WPF 文本框,当您在其中键入一个空格时,该文本框将该空格显示为一个点或其他字符(同时仍将空格存储为其值,显然)。

例如,如果我输入<space><space>abc,我希望文本框显示..abc,但如果我得到它的.Text,它仍应返回<space><space>abc

【问题讨论】:

标签: c# wpf user-interface textbox


【解决方案1】:

看看这是否能解决你的问题。

public class NewTextBox : TextBox
{

    static NewTextBox()
    {
        TextBox.TextProperty.OverrideMetadata(typeof(NewTextBox),
            new FrameworkPropertyMetadata(
                "n/a",
                TextBox.TextProperty.DefaultMetadata.PropertyChangedCallback,
                new CoerceValueCallback(textValueCallback)));
    }

    private static object textValueCallback(DependencyObject d, object baseValue)
    {
        return baseValue.ToString().Replace(' ', '.');
    }

    public new string Text
    {
        get { return base.Text.Replace('.', ' '); }
    }

}

【讨论】:

  • 确实如此,尽管在使用数据绑定时,与Text 混在一起不是正确的方法。更容易引入额外的、未受污染的财产。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
相关资源
最近更新 更多