使用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以实现所需的布局?
答案 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">
这将显示中间的任何内容页面,无论它们的大小。最好为子页面添加最小和最大大小限制,以避免崩溃太小,但这是一个设计问题。它们可以比在导航框架周围添加滚动查看器所需的父框架大。