多くのコンバータでリソースディクショナリ(同じ辞書)をローカル変数として使用しています。プロジェクトのすべての部分でリソースディクショナリを効率的に使用する方法
var DeignerDictionary = new ResourceDictionary
{
Source = new Uri(path)
};
私が新しいインスタンスを作成するたびに、メモリはアプリケーションで非常に高くなります。
次に、リソース辞書を静的フィールドに移動して辞書を再利用していますが、スタイルは正しく表示されません。
誰でも私が間違っていることを示唆することはできません、あなたの提案を提供してください。
この問題は、静的なものとしてResourceDictionaryを変更した後に発生します。ただし、次のコードは正常に動作します。
public class resourceDictionaryProvider{
public static readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}
は、今私はresourceDictionaryProviderクラスのインスタンスを作成していますし、それが正常に動作し、しかし、私は、私は、静的にそれを変更しただけなのでインスタンスを作成する必要はありません。
staticキーワードにはどのような問題がありますか?
。 XAMLファイルで宣言し、必要に応じてコードの背後からアクセスする必要があります。 – Clemens
http://stackoverflow.com/questions/25023671/nested-resource-dictionary-in-separate-libraryの説明でSource属性を使用して、他のリソースディクショナリ内のリソース辞書をネストすることができます。 App.xamlにはアプリケーションと自動的にロードされるリソースディクショナリが含まれているので、そこにインクルードまたは参照するものは、アプリケーションワイドを使用するために利用できます。 –
彼が取り組もうとしている問題は、リソースディクショナリインスタンス(コントロールを介して参照されるたびにすべてのネストされたものを含む辞書を再作成するため、主要なリソース豚)のよく知られた問題である - 彼はSharedResourceDictionaryを基本的に使用しようとしている。質問は有効で、これに対する実際の答えを見てうれしいです。 – Maverik