【问题标题】:Accelerated response of TextBox controlTextBox控件的加速响应
【发布时间】:2011-02-10 21:43:56
【问题描述】:

我在 WPF 文本框控件中用作聊天窗口 -> 使用在文本框控件中输入聊天消息。 问题是用户输入速度稍快 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 的反应,我认为将 MS WPF 控件与 Skype 或 gtalk 中的“文本框控件”进行比较是愚蠢的。

关于 Asyc 绑定我试试:

  <TextBox Text="{Binding Path=RpText,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}"/>

文本在文本框控件中以反向书写。

例如你输入:Hello and in textBox control is olleH :)

【问题讨论】:

    标签: wpf textbox typing


    【解决方案1】:

    绑定和事件处理程序可以减慢文本框的速度。您是否有任何复杂的代码绑定到 Text 属性?您是否有任何可能减慢文本框速度的事件处理程序?

    如果您无法降低绑定属性代码的复杂性,您可以使用asynchronous bindings。如果您通过事件处理文本框的文本,请在单独的线程中执行大部分操作(因此 GUI 线程不会减慢)。

    【讨论】:

    • 您好,感谢您的反馈,我尝试实施您的建议,但我想说它是相同的,Asyc 绑定也会导致反向写入。
    • Micro:Message.Attach="[PreviewKeyDown]=[Action SendRp($eventArgs)] 有什么作用?我猜你可以删除 IsAsinc,如果它没有帮助的话。
    • 我需要检查我用户按下了回车键,它与 PreviewKeyDown ="eventHandler" 相同,只是我在这个文本框事件上绑定了视图模型类的方法。你是捷克人? :D 我是斯洛伐克人 :DD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2013-10-02
    • 2010-11-12
    相关资源
    最近更新 更多