如果有人能想出更好的描述这个问题,请告诉我,我知道这很糟糕。
我有一个数字控件,由滑块,文本框和数字触控板组成。
文本框中显示的数字是可编辑的,并始终显示其精度。 1.0,2.0等。
问题是,我按1.0上的十进制旁边的退格键,数字变为10.0(因为它刚刚删除了小数)这是有意义的,但是我想改为以某种方式制作退格跳过小数。有人知道有什么方法可以做到吗?
- 编辑 -
目前,文本框中显示的值使用以下
进行格式化<i:Interaction.Behaviors>
<core:TextBoxInputRegExBehaviour RegularExpression="^\-?\d+\.?\d*$"
MaxLength="9"
EmptyValue="0.0" />
</i:Interaction.Behaviors>
在其后面的代码中用
更新 public double SliderValue
{
get { return _sliderValue; }
set
{
SetProperty( ref _sliderValue, Truncate( value ) );
TextBoxValue = _sliderValue.ToString( "F" + Precision );
}
}
public string TextBoxValue
{
get
{
_textBoxValue = SliderValue.ToString( "F" + Precision );
return _textBoxValue;
}
set
{
//not important
}
答案 0 :(得分:0)
找出解决问题的方法。按下表格中的退格按钮。
使用以下内容检查插入符号是否在小数点旁边。
var precision = DataContext.GetType().GetProperty("Precision").GetValue(DataContext, null);
var p = Convert.ToInt32(precision);
if ( ValueDisplayBox.CaretIndex == ValueDisplayBox.Text.Length - p )
{
ValueDisplayBox.CaretIndex--;
}
我可能需要根据他们想要处理的方式添加e.handled,但它似乎做了我需要它。