1

カスタム コントロール ライブラリを作成し、ルート パスに「FlipView」という名前のコントロールを作成しました。次に、スタイルを削除し、ルート パスでGeneric.xaml指定された独自のリソース ディクショナリに移動しました。次に、次のコードを使用して、FlipView.xamlそのリソース ディクショナリをマージします。Generic.xaml

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/FlipView.xaml" />
</ResourceDictionary.MergedDictionaries>

次に、別のwpfプロジェクトでコントロールを使用しましたが、XamlParseExceptionInnerException言っ てスローします

リソース 'flipview.xaml' が見つかりません。

なぜできないのですか?リソース ディクショナリは、コントロール ライブラリ プロジェクトのルート パスにあります。

Sourceプロパティ セッターを"pack://application:,,,/MyCustomControls;component/FlipView.xaml"(はカスタム コントロール ライブラリの名前です)に置き換えると、MyCustomControls完全に正常に動作します。

Generic.xaml:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/MyCustomControls;component/FlipView.xaml" />
</ResourceDictionary.MergedDictionaries>

これはなぜですか?

WPF プロジェクトの場合、ルート パスを参照し、再びpack://application,,,/ルート パスを参照するため、これは冗長に見えます。WpfAssemblyName;component/なぜ必要なのGeneric.xamlですか?

編集:この質問を見ましたが、理由が説明されていません。

4

1 に答える 1