0

私はWPFプログラミングモデルが初めてです。私はいくつかのクエリを持っています:

  1. XAML (XBAP アプリケーション) の Page タグはタイプFrameworkElementですか?

  2. 子要素がある場合は、ページ内のフレームと言ってください。そのフレーム要素を別のアセンブリの関数に渡します。フレーム コントロールの Parent プロパティからページに戻ろうとしましたが、ページへの参照を取得できませんか? 何かご意見は?


子コントロールの親ページを取得するために別のアセンブリで使用している関数

Page getTopParent(FrameworkElement f) 
{ 
    FrameworkElement ct = f; 

    while (true) 
    { 
        if (ct is Page) 
        { 
            break; 
        } 

        ct = (FrameworkElement)
        ct.Parent; 
    } 
    return ct as Page; 
}

Please find example XAML

</DataTrigger> </DataTemplate.Triggers>-->

        </TabControl.ItemTemplate>
        <TabControl.ContentTemplate>
            <DataTemplate>
                <StackPanel HorizontalAlignment="Left">
                    <Frame Name="tabContent" Height="520" Width="820" local:WebBrowserBehavior.Source="{Binding Path=CurrentPage}" ContentRendered="tabItem_contentRendered"/>
                </StackPanel>
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>
    <StackPanel Orientation="Horizontal" Name="taskBar" Height="34" VerticalAlignment="Bottom">
        <Button Height="23" Name="helpButton" Width="43" Content="Help" Click="helpButton_Click"/>
    </StackPanel>
</StackPanel>

4

2 に答える 2

1
  1. はい、Pageから継承しFrameworkElementます。
  2. 特にテンプレートを使用している場合は、親を確認するだけではツリーを上に移動できないことがあります。テンプレートを使用している場合は、Parentプロパティが null になるまでツリーを上に移動する必要があります。次に、TemplatedParentプロパティを使用します。両方の組み合わせを使用して、論理ツリーをたどることができます。そうは言っても、WPF はまさにこのシナリオのためのヘルパー メソッドを提供します。チェックアウトしてくださいLogicalTreeHelper.GetParent
于 2009-03-04T12:17:14.210 に答える
-1
  1. はい、XAML の他のすべてと同様です。公式ドキュメントについては、こちらを参照してください。
于 2009-03-04T12:16:41.357 に答える