Как определить размер навигационной страницы - PullRequest
0 голосов
/ 06 октября 2010

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

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

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

1 Ответ

2 голосов
/ 07 октября 2010

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

например.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...