IQueryAmbient Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Dotazy na to, zda má být zadaná vlastnost považována za okolí v aktuálním oboru.
public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
- Odvozené
Poznámky
Účelem mechanismu okolní vlastnosti je zlepšit dobu analýzy tím, že informuje zapisovač objektu XAML, aby se zabránilo vytvoření instance určitých objektů, v případech, kdy je známo, že objekty jsou pro hodnoty, které jsou dočasné a nejsou užitečné pro typickou aplikaci za běhu. Za normálních okolností by vyhledávání XAML nebo zpracování XAML přistupovacího objektu potřebovalo vytvořit instanci takových objektů k vyplnění reprezentace grafu objektu hodnotami připravenými k použití.
IQueryAmbient má jeden člen: IsAmbientPropertyAvailable.
IQueryAmbient je paralelní mechanismus pro AmbientAttribute.
IQueryAmbient je specializovaný mechanismus, který zabraňuje použití reflexe k určení informací a může také jednat v situaci (daný objekt může zvolit sestavu true nebo false pro IsAmbientPropertyAvailable), zatímco atribut je v podstatě statická analýza).
AmbientAttribute je obecný mechanismus, který lze použít pro zapisovače objektů XAML a který obvykle koreluje s vyhrazenými vlastnostmi IsAmbient systému typů XAML a IsAmbient.
Implementace WPF IQueryAmbient
Ve WPF IQueryAmbient se používá pro vyhledávací proces slovníku prostředků. Proces vyhledávání získá po sobě jdoucí Resources hodnoty v rámci logického stromu WPF a pracuje směrem ke kořenu oboru prostředků, dokud se nenajde klíč nebo klíč neexistuje v oboru. Normálně by to vyžadovalo vytvoření instance ResourceDictionary pokaždé, když obdržíte výsledky. Deklarování obsahu Resources prostředí tak dlouho, dokud Resources existuje, optimalizuje tento proces vyhledávání. Ve WPF je toto rozhraní implementováno v následujících případech:
FrameworkElement implementuje IQueryAmbient.IsAmbientPropertyAvailable vrácení
truepro všechny názvy vlastností, pokud obsahuje existující ResourceDictionary pro Resources, a pokud dotaz není pro Resources samotnou vlastnost.Application implementuje stejný vzor pro své Resources.
FrameworkContentElement implementuje stejný vzor pro své Resources.
FrameworkTemplate implementuje stejný vzor pro své Resources. Také hlásí Template obsah jako okolí, ale vrátí
falsese, pokud se dotazuje sám Template .V každém z těchto případů jsou relevantní
Resourcesvlastnosti (a Template) přiřazovat jako AmbientAttribute. Typické použití je dotazování na vlastnosti, které nejsou AmbientAttribute atributy objektu, který definuje rozhraní. Jinými slovy, pokud slovník prostředků existuje, aby se při vytváření grafu objektu poskytla potenciální hodnota doby běhu, lze zacházet jako s okolními vlastnostmi jakékoli další vlastnosti kromě kontejneru vlastností slovníku prostředků.
Metody
| Name | Description |
|---|---|
| IsAmbientPropertyAvailable(String) |
Dotazy na to, zda zadaná pojmenovaná vlastnost může být považována za okolí v aktuálním oboru. |