码迷,mamicode.com
首页 > Windows程序 > 详细

WPF学习之路(八)页面

时间:2015-04-20 11:03:46      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

传统的应用程序中有两类应用程序模式:桌面应用,Web应用。WPF的导航应用程序模糊了这两类应用程序的界限的第三类应用程序

 

WPF导航表现为两种形式,一是将导航内容寄宿于窗口,二是XAML浏览器应用程序

四个核心要素:Page\HyperLink\NavigationServices\Journal

 

Page

WPF中的Page相比Window来说更加的精简,没有提供一个Show或者是Hide的方法,而是通过链接的方式进行页面切换。一般来说Page不设置自身的大小,因为页面的尺寸由包含它的宿主窗体来决定的。

新建一个Page

public partial class MyCustomPage : Page
{
    public MyCustomPage()
    {
        InitializeComponent();
        this.Title = "没有对窗口尺寸进行配置";
    }

    public MyCustomPage(double width, double height, double hostWinWidth, double hostWinHeigth)
        : this()
    {
        this.Width = width;
        this.Height = height;
        this.WindowWidth = hostWinWidth;
        this.WindowHeight = hostWinHeigth;
        this.Title = "对窗口尺寸进行配置";
        this.text.Text = "Width= " + width + "\n\n"
            + "Height= " + height + "\n\n"
            + "WindowWidth= " + hostWinWidth + "\n\n"
            + "WindowHeight= " + hostWinHeigth;
    }

}

App.xaml

<Application x:Class="Alex_WPFAPPDemo05.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="Application_Startup">

App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)
{
    NavigationWindow win = new NavigationWindow();
    win.Content = new MyCustomPage();
    //win.Content = new MyCustomPage(300, 300, 500, 500);
    //win.Content = new MyCustomPage(500, 500, 300, 300);
    win.Show();
}

三种情况的效果图

技术分享

 

技术分享

 

技术分享

 

 Page的宿主窗口包括浏览器、NavigationWindow、Frame

后两种是WPF提供的,能记录Page的导航记录和提供一系列导航事件。NavigationWindow是顶层窗口不能嵌入到其他控件,Frame是轻量级的,可以嵌入到其他控件

新建一个Page观察下这两种控件的不同

      <Border BorderBrush="Blue" BorderThickness="2" Margin="2">
            <TextBlock x:Name="text" Text="该页面的宿主窗口是一个Frame" HorizontalAlignment="Center" VerticalAlignment="Center" />
        </Border>

CustomPage

<Border BorderBrush="Red" BorderThickness="2" Margin="2">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="0" x:Name="text" Text="该页面的宿主窗口是一个NavigationWindow"
                        HorizontalAlignment="Center" VerticalAlignment="Center"  ></TextBlock>
            <Frame Grid.Row="1" Source="SimplePage.xaml" NavigationUIVisibility="Visible"></Frame>
        </Grid>
    </Border>

技术分享

 

 

 

 

 

 

 

 

To be continue...

WPF学习之路(八)页面

标签:

原文地址:http://www.cnblogs.com/alex09/p/4440597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!