我有一個希伯來日曆應用程序,其中每天都是一個UserControl。在該控件中,我有6個標籤用於英語日期,希伯來語日期,猶太節假日和其他一些用戶定義的數據。滾動時,標籤的內容隨着UserControl的日期值在一週內上升或下降而改變。滾動顯然比Microsoft Outlook日曆慢,並且分析顯示時間最長的部分正在更新標籤內容,這不是由我的代碼處理的。文本更新速度放慢應用程序
有什麼方法可以讓這個更快? MS Outlook似乎有相當數量的文本字段,並且滾動是平滑的。
我有一個希伯來日曆應用程序,其中每天都是一個UserControl。在該控件中,我有6個標籤用於英語日期,希伯來語日期,猶太節假日和其他一些用戶定義的數據。滾動時,標籤的內容隨着UserControl的日期值在一週內上升或下降而改變。滾動顯然比Microsoft Outlook日曆慢,並且分析顯示時間最長的部分正在更新標籤內容,這不是由我的代碼處理的。文本更新速度放慢應用程序
有什麼方法可以讓這個更快? MS Outlook似乎有相當數量的文本字段,並且滾動是平滑的。
TextBlocks
並不明顯快Labels
,但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}"/>
做出滾動超級快。
一些注意事項:
Glyphs
不支持綁定,所以我只好給每人一個名稱和代碼更新他們的身後,就像這樣:
HebrewDate.UnicodeString = zman.HebrewDate;
Glyphs
唐沒有佈局功能,所以希伯來文文本出來了。我不得不用reversing function預處理希伯來語字符串。即使在倒轉之後,希伯來元音點出現錯位,所以我保留了Labels
這些使用元音的字符串。
我無法確定,但有可能MS Outlook的編碼速度比WPF快,可能使用DirectX來快速顯示圖形。
否則,我可能會建議減少一次更新綁定的數量,我會建議使用一個額外的線程逐漸更新標籤,因爲當有空閒週期而不是一次全部更新時,這可能會導致您的口吃。
爲了配合前面的答案,我推薦後臺工作者。利用後臺工作人員處理滾動過程中執行的最耗時的操作。
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx
已經由希伯來文的MS Word的處理(文字方向任意扭轉_within相同word_)幾年前帶來眼淚,我被擊倒了** **高超的文字方向的管理Visual Studio編輯器。感謝並感謝MicroSoft的改進! –