c# - 如何在 Silverlight 4 中设置数据网格的高度

标签 c# silverlight silverlight-4.0

我在一个页面中有几个 DataGrid,每个 DataGrid 都通过以下布局/标记定位:

<border BorderBrush="Black">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="Title" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="6,0,0,0" Content="Panel Title"/>
        <toolkit:BusyIndicator Grid.Row="1" Grid.Column="0" x:Name="GridLoadingIndicator">
            <StackPanel Orientation="Vertical">
                <sdk:DataGrid x:name="GVData" 
                    VerticalAlignment="Stretch"
                    HorizontalAlignment="Stretch"
                    AutoGenerateColumns="False"
                    HorizontalScrollBarVisibility="Visible"
                    SelectionMode="Single">
                    <datagrid:DataGridTextColumn Header="Column 1" Binding="{Binding Col1}" />                              
                    <datagrid:DataGridTextColumn Header="Column 2" Binding="{Binding Col2}" />                              
                    <datagrid:DataGridTextColumn Header="Column 3" Binding="{Binding Col3}" />                              
                    <datagrid:DataGridTextColumn Header="Column 4" Binding="{Binding Col4}" />                              
                    <datagrid:DataGridTextColumn Header="Column 5" Binding="{Binding Col5}" />
                </sdk:DataGrid>
            </StackPanel>
        </toolkit:BusyIndicator>
        <StackPanel x:Name="PagerControls" Grid.Row="2" Grid.Column="0" Orientation="Horizontal">
            <!-- Pager -->
        </StackPanel>
    </Grid>
</border>

嗯,问题在于网格本身不想拉伸(stretch)以填充分配给它的空间,而且它也不响应页面大小事件。

关于如何解决这个问题有什么想法吗?

最佳答案

Derek Beattie 的评论是正确的。

如果您的 GridStackPanel 中并且 StackPanel 没有 Horizo​​ntalAlignment="Stretch"(即在不增长的方向)然后堆栈面板将适合它的 child 。

这会使 Grid 中的 Horizo​​ntalAlignment="Stretch" 无效,因为它只能拉伸(stretch)到其直接父级(StackPanel)。它是一个 StackPanel 这一事实意味着 VerticalAlignment="Stretch" 对内部 Grid 不执行任何操作。

如果您确实需要内部 StackPanel(只有一个 child 没有意义),那么也向其添加 Horizo​​ntalAlignment="Stretch"。这不会对垂直拉伸(stretch)产生任何影响。

就我个人而言,我会丢弃围绕内部 GridStackPanel,因为它没有增加任何值(value)。

关于c# - 如何在 Silverlight 4 中设置数据网格的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560336/

相关文章:

silverlight - 当前不会命中断点 : No symbols have been loaded for this document

javascript - 在我的 ASP.NET Web 解决方案中,OnClientClick 在返回 true 时不会传递给 OnClick 代码

c# - 属性的单元测试体

.net - 在服务器 WCF 跟踪日志中记录的此平台问题不支持或未启用扩展保护

wcf - 在Windows Server 2012中安装Silverlight 4,Ria服务应用程序不工作

silverlight - 输入一天中的时间或持续时间的最直观、最有用的方法是什么?

c# - Azure 函数环境变量

c# - 你能在编译过程中只包含某些形式吗

Silverlight:是否可以使用自定义鼠标光标/指针?

flash - Silverlight 4 与 Flash