2013-01-08 2 views
0

글꼴에 대한 외부 리소스 어셈블리를 사용하는 창에 콤보 상자가 있으며 매우 느리게 작동합니다 (7-8 초 동안 풀다운).리소스 어셈블리를 미리로드 하시겠습니까?

<ComboBox ItemTemplate="{StaticResource LangComboboxItemTemplate}" 
x:Name="Lang_Cbx" Width="295" ItemsSource="{Binding Locales}" Height="32" 
FontFamily="/FontLibrary;component/Fonts/Font.CompositeFont#Font" 
SelectedValue="{Binding CurrentLanguage}" SelectedValuePath="LocaleId" 
/> 

'FontFamily'특성을 제거하면 콤보 상자가 예상대로 작동합니다.

더 좋은 방법이 있습니까? 리소스 어셈블리를 미리로드 할 가능성이 있습니까?

(VS2010 & 닷넷 4.0을 사용하여, 자원 조립체 40메가바이트 관한 것이다.) App.xaml에서

답변

1

:

<Application.Resources> 
    <FontFamily x:Key="FontFamilyComboBox">/FontLibrary;component/Fonts/Font.CompositeFont#Font</FontFamily> 
</Application.Resources> 

뷰 :

FontFamily="{DynamicResource FontFamilyComboBox}" 

이 발생할 응용 프로그램 시작시로드 할 리소스 (해당 값을 7 ~ ​​8 초 내에 "지불"함)이지만 콤보가 예상대로 작동합니다.

DynamicResource 대신 StaticResource을 사용할 수도 있지만 어셈블리로드가 너무 느린 경우 리소스를 사용할 수있게되기 전에보기가 초기화되기 시작하고 예외가 throw됩니다.

+1

도움 주셔서 감사합니다.하지만이 작업을 수행 할 수 없습니다. 지연은 글꼴이 처음 사용될 때 항상 발생했습니다. 시작 스플래시 화면에 단일 문자를 추가하고 시작시 지연이 추가되었습니다. – tzerb

관련 문제