Embedded.xaml
<Page x:Class="demo.Embedded" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" WindowTitle="Embedded" Name="embeddedPage"> <StackPanel Margin="5"> <TextBlock Margin="5" TextWrapping="Wrap">This page contains an embedded page in a frame.</TextBlock> <Frame Name="embeddedFrame" Margin="5" Source="Page1.xaml" BorderBrush="Blue" BorderThickness="1" ></Frame> <CheckBox Name="chkOwnsJournal" Margin="5" Click="chkOwnsJournal_Click">Embedded Frame Owns Journal</CheckBox> </StackPanel> </Page>
Embedded.xaml.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace demo { /// <summary> /// Embedded.xaml 的交互逻辑 /// </summary> public partial class Embedded : Page { public Embedded() { InitializeComponent(); } private void chkOwnsJournal_Click(object sender, RoutedEventArgs e) { if (chkOwnsJournal.IsChecked == true) { embeddedFrame.JournalOwnership = JournalOwnership.OwnsJournal; embeddedPage.ShowsNavigationUI = false; } else { embeddedFrame.JournalOwnership = JournalOwnership.UsesParentJournal; embeddedPage.ShowsNavigationUI = true; } } } }
Page1.xaml
<Page x:Class="NavigationApplication.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" WindowTitle="Page1" Title="Page1"> <TextBlock Margin="3" TextWrapping="Wrap"> This is a simple page. Click <Hyperlink NavigateUri="Page2.xaml">here</Hyperlink> to go to Page2. </TextBlock> </Page>
Page2.xaml
<Page x:Class="NavigationApplication.Page2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Page2"> <StackPanel> <TextBlock Margin="3" TextWrapping="Wrap"> This is a simple page. Click <Hyperlink NavigateUri="Page3.xaml">here</Hyperlink> to go to Page3. </TextBlock> </StackPanel> </Page>
Page3.xaml
<Page x:Class="NavigationApplication.Page3" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Page3" WindowTitle="Page3" > <StackPanel Margin="3" Name="pnl"> <TextBlock Margin="3" TextWrapping="Wrap"> This is a Page3.xaml. </TextBlock> </StackPanel> </Page>
WindowWithFrame.xaml
<Window x:Class="demo.WindowWithFrame" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WindowWithFrame" Height="300" Width="300"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <StackPanel> <TextBlock Margin="3" TextWrapping="Wrap">This is a ordinary window content.</TextBlock> <Button Margin="3" Padding="3">Close</Button> </StackPanel> <Frame Grid.Column="1" Source="Page1.xaml" BorderBrush="Blue" BorderThickness="1" NavigationUIVisibility="Visible"></Frame> </Grid> </Window>
原文:http://www.cnblogs.com/xiepengtest/p/4069374.html