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。
例
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 の呼び出しから返されます。
返されるピアの型は、関連する UIElement の OnCreateAutomationPeer 実装 (通常は Control) によって決まります。 要素型のクラス コードが OnCreateAutomationPeer を実装していない場合、ピアは作成されません。CreatePeerForElement は null を返します。 ベスト プラクティスとして、CreatePeerForElement を呼び出した後は常に null をチェックする必要があります。これは、OnCreateAutomationPeer 実装を持たないWindows ランタイム要素が多数存在するためです。 たとえば、ContentControl には、カスタマイズされているか、より派生したWindows ランタイム コントロールでない限り、既定ではピアがありません。
CreatePeerForElement の動作は基本的に FromElement と同じです。
CreatePeerForElement は、何らかの理由で CreateAutomationPeer システム ロジックがまだ 要素 ターゲットで実行されていない場合でも、ピアを返すことができます。 ピアを取得するために、同じ CreateAutomationPeer ロジックが内部的に呼び出されます。