在Silverlight中控制锚定

时间:2012-07-03 19:34:35

标签: silverlight

这可能是一个有点愚蠢的问题,但我不确定还有什么可以尝试,所以想要求一些帮助。我的问题是在Silverlight中锚定控件。

我有一个坐在控件中的网格(C1FlexGrid)。控件在页面中使用,我只想让网格大小由浏览器窗口的大小决定。我希望它具有最小尺寸,但允许它在用户展开浏览器窗口时纵向和横向扩展。在WinForms中(这是我习惯的)这很容易。

然而,在Silverlight中它让我头疼。是否有可能让它按照我想要的方式行事?

我已将控件宽度和高度设置为auto,并指定了一些设计宽度/高度。然后将用户控件放在页面上,控件和页面宽度/高度都设置为自动。

当网格加载其数据时,几百行,它会根据有200行的事实自动调整网格大小,即变得非常长。

修改

以下是一个简单例子中的一些XAML:

<navigation:Page 
    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"
    xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml" x:Class="Optimize.Client.Presentation.AboutView"
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
    Title="About" 
    x:Name="AboutPage"
    Style="{StaticResource PageStyle}">

    <Grid x:Name="LayoutRoot" Background="White" MinWidth="300" MinHeight="300">
        <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
                <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <c1:C1FlexGrid Margin="10" BorderBrush="Red" BorderThickness="1" Width="Auto" Height="Auto" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
            <c1:C1FlexGrid.Columns>
                <c1:Column Header="User Group" Width="*" /> 
            </c1:C1FlexGrid.Columns>
        </c1:C1FlexGrid>
    </Grid>

</navigation:Page>

我想要的只是页面上的网格。该页面的最小尺寸为300x300。当浏览器窗口展开时,我希望页面随之展开,并且网格也随之展开,以便网格的所有边框从顶部/底部/左侧/右侧为10。我已经尝试为布局网格的宽度/高度指定*,但它仍然不起作用。

由于

1 个答案:

答案 0 :(得分:0)

Auto调整大小意味着“请调整我的内容”。这不会限制您使用父控件或浏览器的大小。

您想要Star(*)大小调整,这基本上意味着“扣除任何固定或自动列/行后,请根据星号的比例在任何星大小的列/行之间分配剩余空间”。

您还希望容器指定Horizo​​ntalAlignment =“Stretch”和VerticalAlignment =“Stretch”,以便可以确定分配给星号列/行的空间量(否则它将自行折叠)。

如果您可以发布XAML,我可以更具体。