2

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 
             TextWrapping="Wrap"
             VerticalScrollBarVisibility="Auto" 
             FontSize="14"
             Margin="2,2,2,2" 
             Grid.Row="3"
             MinHeight="70"/>

しかし、私はskype、gtalkでの入力と反応を比較します.MS WPFコントロールをSkypeまたはgtalkの「textBoxコントロール」と比較するのはばかげていると思います.

Asycバインディングについて私はそれを試します:

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

テキストは、テキスト ボックス コントロールに逆に書き込んでいます。

たとえば、次のように入力します: Hello で、textBox のコンストロールは olleH :)

4

1 に答える 1

2

バインドとイベント ハンドラーは、テキスト ボックスの速度を低下させる可能性があります。Text プロパティにバインドされた複雑なコードはありますか? テキスト ボックスの速度を低下させる可能性のあるイベント ハンドラーはありますか?

バインドされたプロパティのコードの複雑さを減らす余裕がない場合は、非同期バインディングを使用できます。イベントを介してテキスト ボックスのテキストを処理する場合は、大部分の操作を別のスレッドで実行します (GUI スレッドの速度が低下しないようにします)。

于 2011-02-10T21:48:58.797 に答える