Frameを使う。 WPF

VB Tips And Sample(HOME)VBプログラマの為のWPF入門

Frameを使う。

どうやら、擬似WEBページのようにフォームを作ることができるようになっているらしい。

frameコントロールを、フォームにドラッグドロップ、Sourceに、先のサンプルWindowExpander.xamlを指定すると、下記のエラー
'WpfApplicationTips.WindowExpander' ルート要素は、ナビゲーションに対して無効です。
エラー
なんだ?frame?
MSサイトを見ると、

Frame は、コンテンツのナビゲーションと表示を実現するコンテンツ コントロールです。他のコントロールや要素のように、他のコンテンツ内でホストされます。 任意の型の .NET Framework 3.0 オブジェクトおよび HTML ファイルをコンテンツとして使用できますが、ナビゲーションのためにコンテンツをパッケージ化するにはページを使用するのが一般的です (Page を参照してください)。
と書いてある。
とりあえず、プロジェクトに新規追加で、Page1.xamlを追加する。
FrameのSourceをSource="Page1.xaml"
に変更して、F5で実行するとすんなりとOK。
で?
Page1.xamlに、適当にコントロールを貼り付けてみる。
F5を押下すると、今度も実行できた。
frameとPage
どうやら、擬似WEBページのようにフォームを作ることができるようになっているらしい。
Page2.xamlを追加してやってみると、遷移できた。
page2.xamlの表示
プロjレクトに追加
フォームでは、はじめてみるインターフェイスだ。
Tabの方が馴染みがあるが、これはこれで使えるケースが想定されるのだろう。

<Window x:Class="WindowFrame"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WindowFrame" Height="387" Width="563">
    <Grid>
        <Canvas ><Frame Source="Page1.xaml" Height="306" Width="525" Name="Frame1"/>
            <Button Canvas.Left="453" Canvas.Top="312" Content="Navigate" Height="30" Name="Button1" Width="72" />
        </Canvas>
        
    </Grid>
</Window>

Public Class WindowFrame

    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
        Me.Frame1.Navigate(New Uri("Page2.xaml", UriKind.Relative))
    End Sub
End Class



VB Tips And Sample(HOME)VBプログラマの為のWPF入門