为Windows Phone 8创建一个主框架
本文关键字:一个 框架 Windows Phone 创建 | 更新日期: 2023-09-27 18:21:06
我制作了一个包含大量页面的应用程序。每个页面由两个部分组成:页面之间共享的同一部分(一些网格、控件和事件等),以及包含每个页面不同内容的单独部分。
现在我想知道我是否可以使用包含第一部分的"主框架",所以我只需要创建包含第二部分的页面(在通用应用程序中,他们有frame.Navigate(),但我不知道WP8是否有)。
实际上在App.xaml.cs
中定义了一个PhoneApplicationFrame
(称为RootFrame
)。
您可以为它创建一个默认样式,并在其ControlTemplate
中添加共享内容。
下面的代码来自我的应用程序627.AM。你可以看到我把徽标(AnimatedLogoView
)放在那里,所以我不需要在每一页上都重复它们。
<Style TargetType="phone:PhoneApplicationFrame">
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}"/>
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="phone:PhoneApplicationFrame">
<Border x:Name="ClientArea" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" d:DesignWidth="480" d:DesignHeight="800" >
<Border.Resources>
<Storyboard x:Name="ShowGlobalMessageAnimation"/>
</Border.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition/>
</Grid.RowDefinitions>
<views:AnimatedLogoView x:Name="Logo" />
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.RowSpan="2" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
希望这能有所帮助!
您可以为在多个页面上使用的零件创建资源。您可以找到一些关于如何在MSDN 上创建资源的背景知识