2011-08-02 12 views
1

私は毎日がUserControlであるヘブライのカレンダーアプリを持っています。私は、英語の日付、ヘブライ語の日付、ユダヤ人の祝日、およびその他のユーザー定義のデータのために、そのコントロールに6つのラベルを持っています。スクロールすると、UserControlの日付値が1週間上または下に移動すると、ラベルの内容が変化します。スクロールはMicrosoft Outlookのカレンダーよりも著しく遅く、プロファイリングでは、コードで処理されないラベルの内容を更新することが最も長い部分が明らかになっています。テキスト更新が遅くなるアプリケーション

これをもっと速くする方法はありますか? MS Outlookはこれに匹敵する数のテキストフィールドを持ち、スクロールはスムーズです。

答えて

3

TextBlocksLabelsよりも著しく速くなかったが、Glyphsは私のカレンダーのむち打ちを与えました。この

<Glyphs Name="HebrewDate" 
     Margin="5" 
     StyleSimulations="BoldSimulation" 
     FontUri = "/Fonts/nrkis.ttf" 
     FontRenderingEmSize = "20" 
     UnicodeString = "5771 ןושח ה" 
     Fill = "Black"/> 

この

<TextBlock Padding="5" 
      FontFamily="Narkisim" 
      FontWeight="Bold" 
      FontSize="20" 
      Text="{Binding HebrewDate}"/> 

の交換

は、超高速スクロールを行いました。

いくつかの注意:

  1. Glyphsは、結合をサポートしていないので、私はそうのように、それぞれ1に名前を付け、後ろのコードでそれらを更新する必要がありました:

    HebrewDate.UnicodeString = zman.HebrewDate; 
    
  2. Glyphsドンヘブライ語のテキストが後方に出てくるようにレイアウト機能を持っています。私はreversing functionでヘブライ文字列を前処理しなければならなかった。逆転した後でも、ヘブライ母音の点は整列していないので、母音を使用する弦についてはLabelsを保持しました。 (テキスト方向を任意に同じword_ _within反転)、私は内のテキスト方向の**優れ**管理でノックアウトしていますヘブライ語のテキストのMS Wordの取り扱いによっては数年前の涙に持ち込まれた

+0

Visual Studioエディタ。改善のためのマイクロソフトへの感謝と感謝! –

1

MS OutlookがWPFより高速で、おそらくDirectXを使用してグラフィックを急速に表示する可能性があります。

それ以外の場合は、一度に更新するバインディングの数を減らすことをお勧めします。追加のスレッドを使用して徐々にラベルを更新して、一時的にすべての代わりに余分なサイクルが発生すると、 。

関連する問題