始终显示silveright页面的顶部

时间:2011-04-16 20:38:35

标签: c# .net silverlight

我正在开发一个包含3个部分的silverlight导航应用程序:

  • 显示公司徽标的一个上部以及菜单(固定高度)
  • 中间部分保存导航框架(可变高度)
  • 底部有一些版权信息和声音开/关按钮(固定高度)

中间部分展示了显示整个内容所需的数量,但它也将视图设置为页面中间。我希望始终显示页面顶部(菜单)。

我怎么能实现这个......

1 个答案:

答案 0 :(得分:0)

是的,您所描述的基本上是“Silverlight导航应用程序”。如果您创建此类型的项目,模板将为您提供您在开始时描述的大部分内容。

创建了这个新项目我建议进行以下更改。修改主页面如下: -

<Grid x:Name="LayoutRoot" Style="{StaticResource LayoutRootGridStyle}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Grid x:Name="NavigationGrid" Style="{StaticResource NavigationGridStyle}">
         <!-- Cut for brevity -->
    </Grid>

    <Border x:Name="ContentBorder" Style="{StaticResource ContentBorderStyle}" Grid.Row="1">
         <!-- Cut for brevity -->
    </Border>

    <Border x:Name="FooterBorder" Style="{StaticResource FooterBorderStyle}" Grid.Row="2">
        <Grid>
            <TextBlock Text="Copyright info here" />
        </Grid>
    </Border>
</Grid>

修改“NavigationGridStyle”和“ContentBorderStyle”,并在/Assets/styles.xaml中添加“FooterBorderStyle”,如下所示: -

  <Style x:Key="ContentBorderStyle" TargetType="Border">
    <Setter Property="Background">
      <Setter.Value>
        <LinearGradientBrush EndPoint="0.5,0.045" StartPoint="0.5,0">
          <GradientStop Color="#6FCCCCCC"/>
          <GradientStop Color="#00CCCCCC" Offset="1"/>
        </LinearGradientBrush>
      </Setter.Value>
    </Setter>
    <Setter Property="BorderBrush" Value="#FFFFFFFF"/>
    <Setter Property="BorderThickness" Value="0,3,0,0"/>
  </Style>

  <Style x:Key="NavigationGridStyle" TargetType="Grid">
    <Setter Property="Background" Value="{StaticResource NavigationBackgroundColorBrush}"/>
  </Style>

  <Style x:Key="FooterBorderStyle" TargetType="Border">
      <!-- Whatever styling if any you want here -->
  </Style>