Share via


FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) メソッド

定義

指定した 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

CreatePeerForElement は、ピアの GetPatternCore 実装で要求されたパターンを実装する可能性があるコンポーネント パーツであるため、いずれかのコンポーネント パーツからピア情報を転送するピアを作成する場合に便利です。 たとえば、コントロールのメインコンポーネントパーツの 1 つが 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 の呼び出しから返されます。

返されるピアの型は、関連する UIElementOnCreateAutomationPeer 実装 (通常は Control) によって決まります。 要素型のクラス コードが OnCreateAutomationPeer を実装していない場合、ピアは作成されません。CreatePeerForElement は null を返します。 ベスト プラクティスとして、CreatePeerForElement を呼び出した後は常に null をチェックする必要があります。これは、OnCreateAutomationPeer 実装を持たないWindows ランタイム要素が多数存在するためです。 たとえば、ContentControl には、カスタマイズされているか、より派生したWindows ランタイム コントロールでない限り、既定ではピアがありません。

CreatePeerForElement の動作は基本的に FromElement と同じです。

CreatePeerForElement は、何らかの理由で CreateAutomationPeer システム ロジックがまだ 要素 ターゲットで実行されていない場合でも、ピアを返すことができます。 ピアを取得するために、同じ CreateAutomationPeer ロジックが内部的に呼び出されます。

適用対象

こちらもご覧ください