2012-06-05 1 views
0

Oreilly가 개발 한 Windows 8 서적을 기반으로하는 메트로 앱을 만들려고합니다.this.Resources [ "ControlHighlightBrush"]를 (를) 브러시로 사용; 던지는 예외

나는 빈 지하철 템플릿

Type rootType = typeof(DependencyObject); 
TypeInfo rootTypeInfo = typeof(DependencyObject).GetTypeInfo(); 
List<Type> classes = new List<Type>(); 
Brush highlightBrush; 

public MainPage() 
{ 
    this.InitializeComponent(); 
    highlightBrush = this.Resources["ControlHighlightBrush"] as Brush;  

마지막 줄이 예외를 throw에 따라, 다음과 같은 코드가 있습니다. 늘어나는만큼 내가 일반적인 폴더에서 ControlHighlightBrush 검색됩니다 이해하지만 StandardStyles.xaml 파일에 존재하지 않는다면 작동하지 않을까요?

나는 whats happenning라고 생각하니?

'System.Runtime.InteropServices.COMException'형식의 예외가 mscorlib.dll에서 발생했지만 사용자 코드에서 처리되지 않은

추가 정보 : 오류 HRESULT E_FAIL은 COM에 대한 호출에서 반환 된 구성 요소.

이 예외에 대한 처리기가있는 경우 프로그램을 안전하게 계속할 수 있습니다.

답변

3

기본적으로 자원에 대한 공통 폴더를 찾지는 않습니다. 자원은 명시 적으로 App.xaml MergedDictionary의 컬렉션을 지정할 수있다 :

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 

      <!-- 
       Styles that define common aspects of the platform look and feel 
       Required by Visual Studio project and item templates 
      --> 
      <ResourceDictionary Source="Common/StandardStyles.xaml"/> 
      <ResourceDictionary Source="Common/CustomStyles.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 

     <!-- Application-specific resources --> 

     <x:String x:Key="AppName">My App</x:String> 
    </ResourceDictionary> 
</Application.Resources> 

그래서, 당신은 CustomStyles.xaml 같은 일부 파일에 사용자 지정 스타일을 추가 할 수 있으며 위와 같이 포함되어 있습니다.

관련 문제