0

OreillyによるDevelopingwindows8の本に基づいてメトロアプリを作成しようとしています。

空白のメトロテンプレートに基づいて、次のコードがあります

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;    

最後の行はこの例外をスローします。私が理解している限り、ControlHighlightBrushは共通フォルダーで検索されますが、StandardStyles.xamlファイルに存在しない場合は機能しませんか?

何が起こっていると思いますか?

タイプ'System.Runtime.InteropServices.COMException'の例外がmscorlib.dllで発生しましたが、ユーザーコードで処理されませんでした

追加情報:COMコンポーネントの呼び出しからエラーHRESULTE_FAILが返されました。

この例外のハンドラーがある場合、プログラムは安全に続行できます。

4

1 に答える 1

3

デフォルトでは、リソースの一般的なフォルダーを検索することはないと思います。リソースは、MergedDictionaryコレクションのApp.xamlで明示的に指定する必要があります。

<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などのファイルにカスタムスタイルを追加し、上記のように含めます。

于 2012-06-06T01:09:31.850 に答える