Календарная сетка в приложении WPF - PullRequest
0 голосов
/ 09 марта 2019

Я хочу сделать приложение календаря с макетом, как в календаре Windows enter image description here

Мне интересно, какие элементы управления можно использовать для создания этого макета в приложении wpf.Я думал о сетке и текстовых блоках в этом блоке, но это не работает с несколькими ячейками сетки.Мне нужно, чтобы мое событие в календаре можно было разделить на несколько ячеек в этой сетке.Что я могу сделать, чтобы добиться того же макета в WPF?

Ответы [ 2 ]

2 голосов
/ 09 марта 2019

Я думаю, что вы на правильном пути с Grid для макета.Grid очень настраиваемый, который должен поддерживать вашу потребность в нескольких ячейках общего доступа.Попробуйте свойство Grid.ColumnSpan.Вы должны правильно настроить ColumnDefinition, чтобы использовать его правильно.

Для получения более подробной информации см. Примеры в официальной документации .Это также с официального сайта:

<Grid VerticalAlignment="Top" HorizontalAlignment="Left" ShowGridLines="True" Width="250" Height="100">
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
      <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
      </Grid.RowDefinitions>

      <TextBlock FontSize="20" FontWeight="Bold" Grid.ColumnSpan="3" Grid.Row="0">2005 Products Shipped</TextBlock>
      <TextBlock FontSize="12" FontWeight="Bold" Grid.Row="1" Grid.Column="0">Quarter 1</TextBlock>
      <TextBlock FontSize="12" FontWeight="Bold" Grid.Row="1" Grid.Column="1">Quarter 2</TextBlock>
      <TextBlock FontSize="12" FontWeight="Bold" Grid.Row="1" Grid.Column="2">Quarter 3</TextBlock>
      <TextBlock Grid.Row="2" Grid.Column="0">50000</TextBlock>
      <TextBlock Grid.Row="2" Grid.Column="1">100000</TextBlock>
      <TextBlock Grid.Row="2" Grid.Column="2">150000</TextBlock>
      <TextBlock FontSize="16" FontWeight="Bold" Grid.ColumnSpan="3" Grid.Row="3">Total Units: 300000</TextBlock>
    </Grid>
1 голос
/ 10 марта 2019

Я бы подумал о покупке лицензии telerik, если бы мне дали это требование.

Взгляните на это https://www.codeproject.com/Articles/30329/Creating-an-Outlook-Calendar-using-WPF-Part-1

Поскольку вам, похоже, требуется менее получаса и половинаширина столбца Я не уверен, что сетка - это путь.Вполне может оказаться проще расположить и перетащить на холст.Затем выполните некоторые вычисления, чтобы обнаружить перекрытие и «привязать» столбцы.Нарисуйте линии на растровом изображении.

Назначения, вероятно, должны быть пользовательским элементом управления, а не просто текстовым блоком.

...