我想添加百分号"%"当用户插入文本时,到wpf TextBox中的任何输入文本。
因此,当用户输入一个数字时,会在输入框中的任意数字上添加%符号, 例如:5将在文本框中显示为5% 0 - 0% 100 - 100%
我尝试了以下代码:
<TextBox x:Name="TextBoxInputValue" Text="{Binding AddPercentSign, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0}%}" Style="{StaticResource @TextBoxStyle}" Width="100" Height="20"></TextBox>
和
public int AddPercentSign{ get; set; }
和
TextBoxInputValue.DataContext = this;
但是当用户插入输入时,它对TextBox没有影响......
如何实现这一结果?
谢谢
答案 0 :(得分:1)
您可以使用一个标志来决定是否应该在事件处理程序中实际设置Text
属性:
private bool _handleEvent = true;
private void TextChanged(object sender, TextChangedEventArgs e)
{
if (_handleEvent)
{
_handleEvent = false;
MyTextBox.Text = MyTextBox.Text + "%$#";
_handleEvent = true;
}
}
答案 1 :(得分:0)
如果您绑定您的Text
媒体资源,则可以使用StringFormat
。
<TextBox Text="{Binding SomeProperty, StringFormat={}{0}%}" />
查看this教程。
答案 2 :(得分:0)
但是当用户插入输入时,它对TextBox没有影响......
您需要定义source属性并将DataContext
的{{1}}设置为定义它的类,例如:
TextBox
<TextBox x:Name="textBox1" Text="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged, StringFormat='{}{0}%'}" />