2009-12-04 17 views
0

Мой нижний колонтитул в настоящее время состоит из ярлыка и элемента управления. Он должен быть ниже двух элементов управления DataGrid, которые похожи друг на друга, поскольку оба они содержат столбец фиксированной ширины для каждого дня недели и конца (что и есть для элемента ItemsControl в нижнем колонтитуле).wpf datagrid footer layout

Я пытаюсь решить выравнивание, которое кажется самым легким, чтобы выровнять столбцы дня вправо. Я думал, что могу использовать DockPanel в качестве контейнера и Dock = Right на ItemsControl, как показано ниже, но все начинается слева после метки.

<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)?

Cheers,
Berryl

Вторичный и более сложный вопрос заключается в том, чтобы сделать колонтитул линию с DataGrid столбцами. Моя главная мысль на сегодняшний день заключалась в том, чтобы использовать тот факт, что последние столбцы всегда одинаковы и их ширина фиксирована.

Я могу сделать вещи линейными с помощью StackPanel, используя FlowDirection = RightToLeft и 8 дочерних меток (в отличие от одного элемента ItemsControl), но это имеет недостатки, связанные с тем, что XAML вздувается и требует, чтобы текст был RightToLeft, чтобы отменить контейнер поток - это грязный и запутанный взгляд.

Я думаю, что нижний колонтитул также может быть другим DataGrid, но столбцы не будут одинаковыми, поэтому мне все равно придется решать выравнивание, работая справа налево, как я сейчас делаю, или выясню, что начальная точка столбцов дня - как первоначально, так и после изменения размера (я не знаю, как это сделать).

Опять же, спасибо за чтение этого и Cheers,
Berryl

ответ

0

Этот код решает проблему выравнивания с помощью DockPanel:

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

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

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

</DockPanel> 

Приветствия,
Berryl