私は現在、いくつかのコンポーネントから構成されているアプリケーションを構築しています。これらのコンポーネントのそれぞれは、プラグインシステムが動作するように(C++を使用して) 。非WPFコードからのWPF XAMLリソースへのアクセス
私が抱えている問題は、各コンポーネントにアイコンを含める必要があり、正真正銘の目的のために、System.Windows.Media.Brush
と定義したので、DesignからエクスポートされたDrawingBrush
を使用することができます。私はそれを読むための方法を見つけることができませんでした
private Brush CachedIcon = null;
public override Brush Icon
{
get
{
if (CachedIcon == null)
{
CachedIcon = (Brush)(new BlahControl().TryFindResource("Icon"));
}
return CachedIcon;
}
}
:今、私は現在、ユーザーコントロールをインスタンス化し、リソースのためにそれを求めての恐ろしい回避策を持っている非WPFのC#からXAMLのその部分にアクセスする必要がありますリソース(.xamlファイルで、カスタムコントロールのResourceDictionary
で参照されています)を「通常の」C#クラスから削除します。 WPFに属するものはどれもTryFindResource
という素敵な方法ですが、それ以外の方法はありますか? XAMLファイルのアイコンが埋め込まれていないようにすることは望ましくありません。
仕事をしているようだが、騒々しいように見える。自動的に生成されたリソースの内部名に依存することは、私にはあまりお勧めできません。 – Joey
Ehh?リソースには文字列名がありますが、それについて何もできません!何を探していますか? – TFD
私は、 ".g.resources"がどれほど信頼できるものであることが証明されているのか不思議に思っていました。私はレイモンド・チェンのブログを十分に読んだことがあります。それは、実際には実装の成果物であり、文書化された動作ではないため、何も使用したくないということです。 – Joey