FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
為指定的 UIElement 建立 FrameworkElementAutomationPeer。
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
參數
- element
- UIElement
與此 FrameworkElementAutomationPeer 相關聯的 UIElement。
傳回
FrameworkElementAutomationPeer。
範例
如果您要撰寫從其中一個元件元件轉送對等資訊的對等,因為其元件可能實作模式的元件元件,如對等的 GetPatternCore 實作要求,則 CreatePeerForElement 很有用。 例如,如果控件的主要元件元件之一是 ScrollViewer ,控件本身可能會有一些其他函式,而且不會直接捲動。 但是對等可能仍想要報告 卷 動模式的支援,並提供對等,讓用戶端可以與卷動元件的自動化模式互動。
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);
}
備註
CreatePeerForElement 是自定義控件程式代碼用來傳回作用中對等實例的協助程序類別。 使用傳回的對等,您可以從引發一般控件邏輯事件或變更控件屬性的相同例程內引發自動化事件。 或者,您可以撰寫自己的協助程式方法,以執行這項操作,並從控件邏輯叫用。
建立的 FrameworkElementAutomationPeer 會保留在記憶體中,直到相關聯的 UIElement 終結為止。 FrameworkElementAutomationPeer 的相同實例會從後續對 CreatePeerForElement 的呼叫傳回,並呼叫參考相同元素實例的 FromElement。
傳回的對等類型是由相關 UIElement 的 OnCreateAutomationPeer 實作所決定,通常是 Control。 如果 元素 類型的類別程式代碼未實作 OnCreateAutomationPeer,則不會建立對等,而且 CreatePeerForElement 會傳回 null。 最佳做法是呼叫 CreatePeerForElement 之後,您應該一律檢查 Null,因為有許多 Windows 執行階段 元素不會有 OnCreateAutomationPeer 實作。 例如,ContentControl 預設不會有對等,除非它是自定義的,或是衍生的 Windows 執行階段 控件。
CreatePeerForElement 基本上與 FromElement 的行為相同。
即使 CreateAutomationPeer 系統邏輯因某些原因尚未在 專案 目標上執行,CreatePeerForElement 仍可傳回對等。 它會在內部叫用相同的 CreateAutomationPeer 邏輯,以取得對等。