IQueryAmbient Interface
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Consultas para saber se uma propriedade especificada deve ser tratada como ambiente no âmbito atual.
public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
- Derivado
Observações
O objetivo de um mecanismo de propriedades ambientes é melhorar o tempo de análise ao informar um escritor de objetos XAML para evitar instanciar certos objetos, nos casos em que se sabe que os objetos são para valores temporários e não úteis para uma aplicação típica em tempo de execução. Normalmente, as consultas XAML ou o processamento XAML de um acessório de obtenção de propriedades precisariam de instanciar tais objetos para preencher a representação do grafo de objetos com valores prontos a usar.
IQueryAmbient tem um membro: IsAmbientPropertyAvailable.
IQueryAmbient é um mecanismo paralelo a AmbientAttribute.
IQueryAmbient é o mecanismo especializado que evita o uso da reflexão para determinar informação, e pode também agir de forma situacional (um dado objeto pode escolher reportar true ou false para IsAmbientPropertyAvailable), enquanto o atributo é essencialmente análise estática).
AmbientAttribute é o mecanismo geral que pode ser usado por escritores de objetos XAML e que normalmente se correlaciona com as propriedades IsAmbient dedicadas do sistema de tipos XAML e IsAmbient.
Implementações WPF do IQueryAmbient
Em WPF, IQueryAmbient é usado para o processo de consulta do dicionário de recursos. O processo de pesquisa recebe valores sucessivos Resources ao longo da árvore lógica WPF, trabalhando para a raiz do âmbito do recurso até que seja encontrada uma chave ou que a chave seja determinada como não existente no âmbito. Normalmente, isso exigiria instanciar a ResourceDictionary cada vez para receber os resultados. Declarar o conteúdo de Resources como ambiente enquanto Resources existir otimiza este processo de consulta. No WPF, esta interface é implementada nos seguintes casos:
FrameworkElement implementa IQueryAmbient.IsAmbientPropertyAvailable o retorno
truepara todos os nomes de propriedades se contiver um existente ResourceDictionary para Resources, e desde que a consulta não seja para a Resources propriedade em si.Application implementa o mesmo padrão para o seu Resources.
FrameworkContentElement implementa o mesmo padrão para o seu Resources.
FrameworkTemplate implementa o mesmo padrão para o seu Resources. Também reporta Template o conteúdo como ambiente, mas devolve
falsese estiver a fazer uma consulta por Template si próprio.Em cada um destes casos, as propriedades relevantes
Resources(e Template) são atribuídas como AmbientAttribute. O uso típico é consultar propriedades que NÃO são as AmbientAttribute propriedades atribuídas ao objeto que define a interface. Por outras palavras, desde que exista um dicionário de recursos para fornecer o valor potencial em tempo de execução quando o grafo-objeto é criado, qualquer outra propriedade que não seja o contentor de propriedades do dicionário de recursos pode ser tratada como ambiente.
Métodos
| Name | Description |
|---|---|
| IsAmbientPropertyAvailable(String) |
Consultas para saber se uma propriedade nomeada especificada pode ser considerada ambiente no âmbito atual. |