powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Ширина элементов в заголовке
7 сообщений из 7, страница 1 из 1
Ширина элементов в заголовке
    #38434221
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется датагрид с одной колонкой, у которой заголовок формируется шаблоном.
Шаблон в заголовке формирует две строки.
Верхняя строка должна содержать текстовое поле во всю ширину колонки.
Нижняя строка должна содержать два текстовых поля, которые чесно делят ширину колонки пополам.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<DataGrid Name="grid1">
  <DataGrid.Resources>

    <DataTemplate x:Key="HeaderTemplate1">
      <Grid Background="Blue">

        <Grid.ColumnDefinitions>
          <ColumnDefinition />
          <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
          <RowDefinition />
          <RowDefinition />
        </Grid.RowDefinitions>

        <TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="Caption" />
        <TextBlock Grid.Row="1" Grid.Column="0" Text="Col1" />
        <TextBlock Grid.Row="1" Grid.Column="1" Text="Col2" />

      </Grid>
    </DataTemplate>

  </DataGrid.Resources>

  <DataGrid.Columns>
    <DataGridTemplateColumn HeaderTemplate="{StaticResource HeaderTemplate1}" />
  </DataGrid.Columns>

</DataGrid>


В реальной жизни эти текстовые поля жмутся к левому "борту" и по ширине ведут себя очень скромно - не расползаются по ширине колонки.
Всякие шаманские действия не привели к нужному результату.
Нужна помощь - как растянуть заголовочные TextBox-ы по всей колонке?
...
Рейтинг: 0 / 0
Ширина элементов в заголовке
    #38437798
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мысли отсутствуют?
...
Рейтинг: 0 / 0
Ширина элементов в заголовке
    #38437936
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательX,

не совсем понятно что в конце концов нужно, но наверное для подобных "задач" больше подходит ControlTemplate (а не DataTemplate), например
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
                <DataGridTemplateColumn ... >
                    <DataGridTemplateColumn.HeaderStyle>
                        <Style TargetType="DataGridColumnHeader">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="DataGridColumnHeader">
                                        <Grid Background="Blue" HorizontalAlignment="Stretch">

                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition />
                                                <ColumnDefinition />
                                            </Grid.ColumnDefinitions>
                                            <Grid.RowDefinitions>
                                                <RowDefinition />
                                                <RowDefinition />
                                            </Grid.RowDefinitions>

                                            <TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="Caption" HorizontalAlignment="Center" />
                                            <TextBlock Grid.Row="1" Grid.Column="0" Text="Col1" HorizontalAlignment="Center" />
                                            <TextBlock Grid.Row="1" Grid.Column="1" Text="Col2" HorizontalAlignment="Center" />

                                        </Grid>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </DataGridTemplateColumn.HeaderStyle>
...
Рейтинг: 0 / 0
Ширина элементов в заголовке
    #38438481
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть и ControlTemplate.
Но, тот кусок кода, который я привел тоже работает.
Проблема в том, что тектовые блоки из которых лепится заголовок сбиваются к левому краю и не соответсвуют по положению и ширине колонкам данных, которые идут ниже заголовка. К тому же если покрасить их фон в какой-нибудь цвет, то заголовок будет иметь не сплошную закраску, а закраску в виде островков - на месте ужатых текстбоксов.
Возможно я действительно ошибся и выбрал не ControlTemplate. Попробую. Заработает буду рад. Спасибо.
...
Рейтинг: 0 / 0
Ширина элементов в заголовке
    #38440502
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну тексты отцентрировались, а вот растяжка текстблоков во всю ширину не получилась.
Я специально покрасил текстбоксы разными цветами, чтобы было видно их размеры.
Картинка в аттаче
К тому же ширина колонки теперь мышкой не "таскается".
...
Рейтинг: 0 / 0
Ширина элементов в заголовке
    #38440506
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если убрать в текстблоках
Код: c#
1.
HorizontalAlignment="Center"


, то тектсблоки заполняют все пространство, но вот их текст опять жмется по краям.
Фигня какая-то.
...
Рейтинг: 0 / 0
Ширина элементов в заголовке
    #38440543
mr Vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
TextAlignment="Center"
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Ширина элементов в заголовке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]