2010-04-28 65 views
1

我的演示应用程序显示了两个应该填满整个浏览器屏幕的矩形。它们之间有一个垂直分离器。这看起来像一个基本的场景,但我不知道如何在xaml中实现它。我不能强制这个来填充整个屏幕,当移动分离器时,整个屏幕都会增长。任何人都可以帮忙吗?移动时出现奇怪的分离器行为

<UserControl 
    xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
    x:Class="SilverlightApplication1.MainPage" 
    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" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> 
    <Grid x:Name="LayoutRoot" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/>    
     </Grid.ColumnDefinitions> 
     <Border BorderBrush="Black" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MinWidth="50"> 
     </Border> 
     <controls:GridSplitter Grid.Column="1" VerticalAlignment="Stretch" Width="Auto" ></controls:GridSplitter> 
     <Border BorderBrush="Blue" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="2" MinWidth="50"></Border> 
    </Grid> 
</UserControl> 

回答

2

GridSplitter只是糟透了。尝试一个停靠控制。

+0

heh,有趣的观点:-) – tomo 2010-04-29 07:27:10

+0

@tomo - 嘿,有趣的接受的答案 – 2010-06-10 05:23:07

+0

是啊!避免治愈更好!在办公室,我决定使用Telerik的分离器。内置SL分离器对我来说不存在! – tomo 2010-06-10 08:29:01

2

这是您的列布局。你需要明星大小调整为左,右列,并自动为中等:

编辑:

使用网格分路器(在这个特定的正确方法案例)似乎只使用网格中的两列。然后应将网格分离器放置在的第一个列中,但对齐到右侧。像这样:

<Grid x:Name="LayoutRoot" 
      VerticalAlignment="Stretch" 
      HorizontalAlignment="Stretch"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Border BorderBrush="Black" 
       BorderThickness="3" 
       Margin="3,3,13,3" 
       VerticalAlignment="Stretch" 
       HorizontalAlignment="Stretch" 
       MinWidth="50"> 
     </Border> 
     <controls:GridSplitter Grid.Column="0" 
           VerticalAlignment="Stretch" 
           HorizontalAlignment="Right" 
           Width="10"></controls:GridSplitter> 
     <Border BorderBrush="Blue" 
       Margin="3" 
       BorderThickness="3" 
       VerticalAlignment="Stretch" 
       HorizontalAlignment="Stretch" 
       Grid.Column="2" 
       MinWidth="50"></Border> 
    </Grid> 
+0

它有点帮助。应用程序填满整个屏幕,但您是否看到了移动分离器时它的工作原理? – tomo 2010-04-28 14:29:02

+0

是的,我现在看到。对不起,我错过了。请参阅上面的更新代码。 – 2010-04-29 07:27:41

1

我发现分离器和自动宽度不起作用。