2011-04-08 87 views
0

填充整个内容区域,我使用导航框架显示不同的页面。在测试页中,我两个halfes拆分电网用一个简单的文本框和矩形每个:在我的Silverlight 4应用程序中使用导航框架

<Grid x:Name="LayoutRoot"> 
     <Grid.ColumnDefinitions> 
     <ColumnDefinition Width=".5*"/> 
     <ColumnDefinition Width=".5*"/> 
     </Grid.ColumnDefinitions> 
    <Rectangle Fill="#FF9696DA"/> 
    <Rectangle Fill="#FFDAC296" Grid.Column="1"/> 
    <sdk:GridSplitter x:Name="GridSplitterTreeViewArea" HorizontalAlignment="Right" Width="5"/> 
    <TextBlock TextWrapping="Wrap" Text="TreeView Area" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Grid.RowSpan="2"/> 
    <TextBlock TextWrapping="Wrap" Text="Main Area" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Grid.Column="1"/> 
</Grid> 

我想这个页面来填充屏幕的整个内容区域,或者换句话说...的浏览器窗口的剩余空间。但它不会延伸,它与文本框需要显示的一样大。我已经检查了内容控件,但它是(标准)设置为伸展

<Border x:Name="ContentBorder" Style="{StaticResource ContentBorderStyle}"> 
     <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" Source="/EditorDisplayArea" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed" Padding="1" Template="{StaticResource ContentFrameTemplate}"> 
      <navigation:Frame.UriMapper> 
       <uriMapper:UriMapper> 
        <uriMapper:UriMapping Uri="" MappedUri="/Views/EditorDisplayArea.xaml" /> 
        <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml" /> 
       </uriMapper:UriMapper> 
      </navigation:Frame.UriMapper> 
     </navigation:Frame> 
    </Border> 

如何让页面填充剩余空间?

由于提前,
弗兰克

回答

1

已经找到了!

问题出在ContentFrameTemplate中。我使用它来将ContentPresenter更改为TransitioningContentControl,方法是创建默认控件模板的副本并交换控件类型。看起来,ContentPresenter的Vertical/Horizo​​ntalCONTENTAlignement是按标准拉伸的,但不是用于TransitioningContentControl。所以解决方案是将这些添加到模板中。

<ControlTemplate x:Key="ContentFrameTemplate" TargetType="navigation:Frame"> 
    <Border Background="{TemplateBinding Background}" 
     BorderBrush="{TemplateBinding BorderBrush}" 
     BorderThickness="{TemplateBinding BorderThickness}" 
     HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
     VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> 
     <toolkit:TransitioningContentControl 
      Content="{TemplateBinding Content}" 
      Cursor="{TemplateBinding Cursor}" 
      Margin="{TemplateBinding Padding}" 
      HorizontalAlignment="{TemplateBinding HorizontalAlignment}" 
      HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
      VerticalAlignment="{TemplateBinding VerticalAlignment}" 
      VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/> 

    </Border> 
</ControlTemplate> 

我在Shawn Wildermuths Blog的评论中发现了它。

Frank

相关问题