7

WPFで、別のXAMLファイルで定義されている静的リソースを参照するにはどうすればよいですか?同じプロジェクトにあります。

4

2 に答える 2

9

もう 1 つの XAML ファイルは、リソース ディクショナリである必要があります。現在の ResourceDictionary の MergedDictionaries プロパティを使用して、現在のファイルにマージします。MSDN のMerged Resource Dictionariesを参照してください。彼らの例:

<Page.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="myresourcedictionary.xaml"/>
      <ResourceDictionary Source="myresourcedictionary2.xaml"/>
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</Page.Resources>

myresourcedictionary.xaml次に、その Page オブジェクト内で、または で定義された静的リソースを参照できますmyresourcedictionary2.xaml

于 2010-09-02T21:29:10.673 に答える
4

「異なる XAML ファイル」は、いくつかの異なることを意味する可能性があります。

  • App.xaml: リソースは、開いているすべてのリソース ツリーに自動的に含まれるため、特別なことをする必要はありません。
  • Window または Page .xaml: リソースは、Window で使用される UserControl のようなオブジェクトのインスタンスの任意の子からアクセスできます。
  • ResourceDictionary: 使用されている場所の上のリソース ツリーに明示的にマージする必要があります。これは、App.xaml、Windowxx.xaml、または下位レベルの要素です。これを行うには、ResourceDictionary.MergedDictionaries を使用します。

パスを指定する別の方法もたくさんありますが、これが最も簡単です。

<Window>
    <Window.Resources>
      <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
          <ResourceDictionary Source="Resources/MyResourceDict.xaml" />
        </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
    </Window.Resources>
于 2010-09-02T21:32:39.923 に答える