【问题标题】:wpf datagrid footer layoutwpf datagrid页脚布局
【发布时间】:2010-12-23 07:54:25
【问题描述】:

我的页脚目前由一个标签和一个 ItemsControl 组成。它需要低于 2 个相似的 DataGrid 控件,因为它们都包含一个固定宽度的列,用于一周中的每一天和它的结尾(这是页脚中的 ItemsControl 的总计)。

我正在尝试解决对齐问题,这似乎最容易将日期列正确对齐。我以为我可以使用 DockPanel 作为容器,并在 ItemsControl 上使用 Dock=Right,如下所示,但一切都从标签后的左侧开始。

<DockPanel x:Name="columnTotals" DockPanel.Dock="Bottom" >

    <Label ... DockPanel.Dock="Left" Width="Auto">Grand Totals</Label>

        <ItemsControl DockPanel.Dock="Right"
            ItemsSource="{Binding Path=TotalTimeViewModels, Mode=OneWay}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>

    </DockPanel>

所以我在这篇文章中的主要问题是:为什么 ItemsControl 实际上没有停靠在它的父容器的右侧(目前也是一个 DockPanel)?

干杯,
浆果

第二个更复杂的问题是如何使页脚与 DataGrid 列对齐。迄今为止,我的主要想法是利用最后一列始终相同且宽度固定的事实。

我可以使用 FlowDirection=RightToLeft 和 8 个子标签(而不是一个 ItemsControl)使事物与 StackPanel 对齐,但这具有使 XAML 臃肿并且需要文本为 RightToLeft 以反转容器流的缺点- 看起来很混乱。

我猜页脚也可能是另一个 DataGrid,但列不会相同,所以我仍然必须通过像现在这样从右到左工作来解决对齐问题,或者弄清楚一天列的起点是最初和调整大小之后(我不知道该怎么做)。

再次感谢您阅读本文和干杯,
浆果

【问题讨论】:

    标签: wpf silverlight layout datagrid footer


    【解决方案1】:

    此代码使用 DockPanel 解决对齐问题:

    <DockPanel LastChildFill="True" DockPanel.Dock="Bottom" >
    
        <ItemsControl DockPanel.Dock="Right" Width="Auto" ... />
    
        <Label ... Width="Auto">Grand Totals</Label>
    
    </DockPanel>
    

    干杯,
    浆果

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 2016-01-04
      • 2011-08-22
      • 2011-09-22
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 2012-01-19
      相关资源
      最近更新 更多