我在WPF textBox控件中用作聊天窗口 - >使用键入聊天消息到textBox控件。 问题是用户输入的速度要快一点,TextBox反应缓慢。如果可能的话,我想以某种方式加速textBox的响应。
任何想法。很难描述这个行为,如果你有时间尝试,快速输入这个控件。
编辑:
这是textBox代码的原始部分:
<TextBox Text="{Binding Path=RpText,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
FontSize="14"
Margin="2,2,2,2"
Grid.Row="3"
MinHeight="70"
Micro:Message.Attach="[PreviewKeyDown]=[Action SendRp($eventArgs)]"/>
我省略了双向绑定以及PreviewKeyDown,我想说我的看法是一样的。
这是textBox的修改代码
<TextBox
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
FontSize="14"
Margin="2,2,2,2"
Grid.Row="3"
MinHeight="70"/>
但是我比较了skype,gtalk的输入,我认为在Skype或gtalk中将MS WPF控件与“textBox控件”进行比较是愚蠢的。
关于Asyc绑定我试试看:
<TextBox Text="{Binding Path=RpText,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}"/>
Text正在文本框控件中反向写入。
例如,您键入:Hello,在textBox中,constrol是olleH:)
答案 0 :(得分:2)
绑定和事件处理程序可以减慢文本框的速度。你有任何绑定到Text属性的复杂代码吗?你有没有可能减慢文本框速度的事件处理程序吗?
如果无法降低绑定属性代码的复杂性,可以使用asynchronous bindings。如果您通过事件处理文本框的文本,请在单独的线程中执行大部分操作(因此GUI线程不会变慢)。