FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um FrameworkElementAutomationPeer para o UIElement especificado.
public:
static AutomationPeer ^ CreatePeerForElement(UIElement ^ element);
static AutomationPeer CreatePeerForElement(UIElement const& element);
public static AutomationPeer CreatePeerForElement(UIElement element);
function createPeerForElement(element)
Public Shared Function CreatePeerForElement (element As UIElement) As AutomationPeer
Parâmetros
- element
- UIElement
O UIElement associado a este FrameworkElementAutomationPeer.
Retornos
Um FrameworkElementAutomationPeer.
Exemplos
CreatePeerForElement será útil se você estiver escrevendo um par que encaminhe as informações de um de seus componentes, pois é a parte do componente que pode implementar um padrão conforme solicitado na implementação getPatternCore do par. Por exemplo, se uma das partes main componente de um controle for um ScrollViewer, o próprio controle poderá ter alguma outra função e não rolar diretamente. Mas o par ainda pode querer relatar suporte para um padrão de rolagem e fornecer um par para que um cliente possa interagir com o padrão de automação da parte de rolagem.
protected override object GetPatternCore(PatternInterface patternInterface)
{
if (patternInterface == PatternInterface.Scroll)
{
ItemsControl owner = (ItemsControl) base.Owner;
UIElement itemsHost = owner.ItemsHost;
ScrollViewer element = null;
while (itemsHost != owner)
{
itemsHost = VisualTreeHelper.GetParent(itemsHost) as UIElement;
element = itemsHost as ScrollViewer;
if (element != null)
{
break;
}
}
if (element != null)
{
AutomationPeer peer = FrameworkElementAutomationPeer.CreatePeerForElement(element);
if ((peer != null) && (peer is IScrollProvider))
{
return (IScrollProvider) peer;
}
}
}
return base.GetPatternCore(patternInterface);
}
Comentários
CreatePeerForElement é uma classe auxiliar usada pelo código de controle personalizado para retornar a instância de par em ação. Usando o par retornado, você pode disparar eventos de automação de dentro das mesmas rotinas que também disparam seus eventos lógicos de controle geral ou alteram as propriedades de controle. Ou você pode escrever seus próprios métodos auxiliares que fazem isso e são invocados da lógica de controle.
O FrameworkElementAutomationPeer criado permanece na memória até que o UIElement associado seja destruído. A mesma instância do FrameworkElementAutomationPeer é retornada de chamadas subsequentes para CreatePeerForElement e chamadas para FromElement que fazem referência à mesma instância de elemento .
O tipo do par retornado é determinado pela implementação OnCreateAutomationPeer do UIElement relevante, que normalmente é um Controle. Se o código de classe para o tipo de elemento não implementar OnCreateAutomationPeer, nenhum par será criado e CreatePeerForElement retornará nulo. Como prática recomendada, você deve sempre marcar nulo depois de chamar CreatePeerForElement, pois há vários elementos Windows Runtime que não terão uma implementação OnCreateAutomationPeer. Por exemplo, um ContentControl não tem um par por padrão, a menos que seja personalizado ou seja um controle de Windows Runtime mais derivado.
CreatePeerForElement tem basicamente o mesmo comportamento que FromElement.
CreatePeerForElement pode retornar o par mesmo que a lógica do sistema CreateAutomationPeer ainda não tenha sido executada no destino do elemento por algum motivo. Ele invocará a mesma lógica CreateAutomationPeer internamente para obter o par.