私はテストを行っています。私は、各視覚的要素を反復処理したいXamlReader.Parseに方法Framework Elementをロードする方法
<StackPanel x:Name='Element1'>
<ContentControl x:Name='Element6'>
<Button x:Name='Element7'>
<Label x:Name='Element8' />
</Button>
</ContentControl>
<Button x:Name='Element2' />
<FrameworkElement x:Name='Element3' />
<Button />
<DockPanel x:Name='Element4' />
<FrameworkElement x:Name='Element5' />
<FrameworkElement />
</StackPanel>
次を使用して要素を取得するために、XAMLを解析します。私はVisualTreeHelper.GetChildrenCountとVisualTreeHelper.GetChildメソッドを使用します。 VisualTreeHelper.GetChildrenCountルートStackPanelのは7を返します。しかし、ContentControl(Element 6)の場合、VisualTreeHelper.GetChildrenCountは0を返します。
IsLoadedプロパティをチェックしたところ、「偽」値でした。これは、ContentControlのContentTemplateがロードされていないことを意味します。
私はコントロールの読み込みをどのように開始できるのか知りたいです。
の正しい値を返しますそのVisualTreeHelper.GetChildrenCountとVisualTreeHelper.GetChild法の後
私はあなたにもちょうど 'ContentControl.Loaded'イベントを待つことができると信じて - 何かが最終的にあると仮定するとコントロールへのローディング – Charleh
@Charleh、no。私もそれについて考えました。しかし、解析された要素はウィンドウに表示されるまでロードされません。 –