2010-10-06 4 views
0

Используя шаблон проекта Silverlight Navigation, я хотел бы, чтобы содержимое моих страниц было горизонтально и с нуля центрировано в рамке навигации и не заполняло все пространство.Как изменить страницу навигации

Например, рассмотрим этот фрагмент XAML, помещенный в Home.xmal view. В результате это округлый бежевый фон, который заполняет весь кадр с помощью «Некоторого интересного контента» в центре.

<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", тогда я получу то, что выглядит близко, но эти фиксированные числа не будут подходящими по мере изменения размера контента.

Как изменить XAML как в режиме просмотра Home, так и в рамке MainPage для достижения желаемого макета?

ответ

2

В mainpage.xaml вы можете настроить навигационный кадр, чтобы его контент был центрирован (по умолчанию растягивается).

например.

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

Это будет показывать любые контентные страницы посередине, независимо от их размера. Лучше всего добавлять минимальные и максимальные пределы размера для дочерних страниц, чтобы избежать свертывания вещей слишком мало, но это проблема дизайна. Это они могут быть больше, чем родительский кадр, вам нужно будет добавить средство просмотра прокрутки вокруг рамки навигации.

+0

+1. Мне очень нравится «Если они могут быть больше родительского кадра, вам нужно будет добавить элемент просмотра прокрутки вокруг рамки навигации». Спасибо за совет. –

Смежные вопросы