如何调整导航页面的大小

时间:2010-10-06 13:15:26

标签: xaml silverlight-4.0

使用Silverlight导航项目模板,我希望我的页面内容在导航框架中水平且美观地居中,而不是填满整个空间。

例如,考虑将这块XAML放置在Home.xmal视图中。这导致了一个圆角米色背景,在整个画面中填充了“一些有趣的内容”在中心。

<navigation:Page x:Class="SilverlightApplication3.Home" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
    Title="Home"
    Style="{StaticResource PageStyle}">
    <Grid x:Name="LayoutRoot">
        <Border BorderThickness="5" CornerRadius="20" Background="Beige" Width="Auto" Height="Auto">
            <TextBlock Text="Some interesting content goes here" FontSize="20" 
                       FontFamily="Comic Sans MS" Foreground="Teal" 
                       HorizontalAlignment="Center"
                       VerticalAlignment="Center" Margin="20"/>
        </Border>
    </Grid>
</navigation:Page>

我所希望的是文本会被米色背景所包围,距离内容20像素。

现在,如果我添加到此LayoutRoot Width="400" Height="100",那么我会看到一些看起来很接近的东西,但这些数字是固定的,因为内容会改变大小,所以不适合。

如何更改Home视图或MainPage框架的XAML以实现所需的布局?

1 个答案:

答案 0 :(得分:2)

在mainpage.xaml中,您可以设置导航框架使其内容居中(默认为拉伸)。

e.g。

 <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" 
                              Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed"
                              HorizontalContentAlignment="Center"
                              VerticalContentAlignment="Center">

这将显示中间的任何内容页面,无论它们的大小。最好为子页面添加最小和最大大小限制,以避免崩溃太小,但这是一个设计问题。它们可以比在导航框架周围添加滚动查看器所需的父框架大。