在WPF中,下面的代碼返回給定位置的所有字體的列表:WPF Fonts.GetFontFamilies()緩存字體列表,如何清除緩存?
foreach (var fontFamily in Fonts.GetFontFamilies(@"C:\Dummy\Fonts\"))
{
System.Diagnostics.Debug.WriteLine(fontFamily.Source);
}
的問題是,如果你更改該文件夾(添加或刪除字體)的內容和運行此代碼再次,它返回相同的列表(因爲它是緩存內部某處)。
這個緩存不會被清除,直到你的退出該應用程序!
有什麼辦法可以防止這種行爲,並且總是讓WPF在那個時候查看那個文件夾的字體嗎?
注:結果是無論「的Windows Presentation Foundation字體緩存3.0.0.0」服務狀態啓動或停止的一樣。顯然,這種特定類型的緩存並未被服務處理。
當您在Debug和Release配置中運行應用程序時,會發生這種情況嗎?我有一個類似的問題,只發生在調試模式下。 – 2011-03-30 15:09:43
是的,它是一樣的,不管我在Release/Debug/VS/Standalone內運行應用程序。總是緩存在那裏。 – 2011-03-30 15:14:33