Я не уверен, что название дает смысл.Я делаю вид «День» для календаря с временными интервалами слева, а затем с любым назначением, указывающим на этот временной интервал на панели справа.Если назначена одна встреча, она должна заполнить все горизонтальное пространство, но, если их больше (противоречивое время встречи), они должны изменить размер, чтобы они помещались в одну строку рядом друг с другом и по-прежнему занимали все горизонтальное пространство.По сути, именно так Outlook делает это в их дневном представлении.
Итак, я попробовал множество установок с различными комбинациями стековых панелей, itempanels, равномерных сеток и т. Д. DockPanel, кажется, тот, который я хочу, так как егоchild заполняет пространство, но дальнейшие встречи в том же слоте, и я добавляю вертикальные линии (я хочу, чтобы они "сокращались" по горизонтали).Я чувствую, что растягиваю стековую панель, и ее дочерние элементы не являются правильным способом сделать это, но я не могу понять, как мне это сделать.
Вот что я имею до сих пор (я удалил неважнотакие вещи, как стилизация и связывание имен, чтобы сделать его менее пугающим, будьте уверены, все данные есть):
<ScrollViewer Grid.Column="0" Grid.Row="3">
<ItemsControl ItemsSource="{TimeBlocks}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="75"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Column="0" Grid.Row="0">
<TextBlock Text="{Time}"/>
</Border>
<ItemsControl ItemsSource="{Appts}" Grid.Column="1" Grid.Row="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<DockPanel>
<customs:ApptPanel DockPanel.Dock="Left"/>
</DockPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>