誰かが.NETのアンビエントアトリビュートを照らすことができますか?.NETでAmbient属性を使用していますか?
2
A
答えて
1
私はMSDN linkがこれを説明するのに良いと思います。また
「アンビエント型(AmbientAttributeタイプレベルで適用されるタイプの)プロパティのタイプは、順不同で解決される必要がある特定のXAML処理の状況に使用することができ、上記ページ内の行を参照"
そしてこのlink氏は述べています
「AmbientAttributeは、アプリケーション、セッター、およびスタイルを含め、いくつかのWPFの種類、のメンバーに記載されています。また、暗示ResourceDictionaryの種類に発見されているようなのResourceDictionaryを使用して任意のメンバーメンバーが特別に帰属されていなくても、そのタイプは周囲環境とみなされるべきです。
1
あなたが正しい型の値にVをtypeconvertする方法を理解する前に、P(Pの実際のタイプを)知っている必要があります<Setter Property="P" Value="V" />
のような問題を解決するために使用されます。 "Property"プロパティを[Ambient]とマークし、1.ローダーが最初に "Property"を処理し、2. "Value"型コンバータが実行時に "Type"値を読み取ることを許可します。
これは、{StaticResource foo}
がXAMLの親を検索し、その中に "foo"が含まれている可能性のあるResourceDictionaryを探す方法です。
例:
// This markup extension returns the number of Ambient "Resource" properties
// Found in the XAML tree above it.
// The FrameworkElement.Resources property is already marked [Ambient]
public class MyMarkupExtension : MarkupExtension
{
public override object ProvideValue(IServiceProvider serviceProvider)
{
var schemaProvider = serviceProvider.GetService(typeof(IXamlSchemaContextProvider)) as IXamlSchemaContextProvider;
var ambientProvider = serviceProvider.GetService(typeof(IAmbientProvider)) as IAmbientProvider;
XamlMember resourcesProperty = new XamlMember(typeof(FrameworkElement).GetProperty("Resources"), schemaProvider.SchemaContext);
List<AmbientPropertyValue> resources = (List<AmbientPropertyValue>) ambientProvider.GetAllAmbientValues(null, resourcesProperty);
Debug.WriteLine("found {0} FramewrkElement.Resources Properties", resources.Count);
return resources.Count.ToString();
}
}
関連する問題
- 1. DataContract属性とDataMember属性はいつ使用しますか?
- 2. .NETの[Obsolete(string、bool)]属性の使用
- 3. 属性パラメータとしてデリゲートを使用できますか?
- 4. jqueryメタデータプラグインクロスブラウザを使用してカスタム属性を追加していますか?
- 5. Androidはsdkの属性を使用しています
- 6. 私は次のコード を使用しています属性
- 7. WSDLポートバインディングで 'address'要素の 'location'属性を使用していますか?
- 8. angularjsのsrc属性内でng-repeat変数を使用していますか?
- 9. 属性のみを使用した.NET MVCルーティング
- 10. データ属性値を使用してスクロール
- 11. vue.jsを使用してカスタム属性名
- 12. RestSharp RestRequest.AddBody Newton.Json属性を使用していません
- 13. いつ属性ターゲットを使用できますか?
- 14. Objective-CではARCを使用していますが、通常は非属性をプロパティ属性として指定するだけでよいのですか?
- 15. Flex 4:トランジションはincludeIn属性とexcludeFrom属性で使用できますか?
- 16. jqueryを使用してテキストボックスに属性を追加します
- 17. Jqueryを使用してCSS属性を削除します
- 18. サーバ間でKnownType属性を使用するか使用しないか?
- 19. JDOMを使用して要素をその属性で削除しますか?
- 20. 要素と属性はいつ使用しますか?
- 21. .netメソッドの属性
- 22. 工場の定義では、他の工場の属性を使用して属性を割り当てます。
- 23. 属性を使用してメソッドをオーバーライドすることはできますか?
- 24. 未使用の属性オプションをすべて削除します。
- 25. DotNetOpenAuth属性ExchangeでFavoriteFlavor属性を使用する方法
- 26. NUnit Assert.ThrowsメソッドまたはExpectedException属性を使用しますか?
- 27. 多くのクラスで同じ属性の束を使用しています
- 28. xml属性だけを使用してAndroidカスタムコントロールを作成できますか?
- 29. xpathを使用して属性名の値を設定できますか?
- 30. DataContract属性と.netのSerializable属性の違い