0

我的页脚目前由一个标签和一个 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,但列不一样,所以我仍然必须通过像现在这样从右到左工作来解决对齐问题,或者弄清楚起点是什么日列是最初和调整大小之后(我不知道该怎么做)。

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

4

1 回答 1

0

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

<DockPanel LastChildFill="True" DockPanel.Dock="Bottom" >

    <ItemsControl DockPanel.Dock="Right" Width="Auto" ... />

    <Label ... Width="Auto">Grand Totals</Label>

</DockPanel>

干杯,
贝里尔

于 2009-12-05T17:26:22.807 回答