powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGridColumn не меняет размер после изменения размера окна
12 сообщений из 12, страница 1 из 1
DataGridColumn не меняет размер после изменения размера окна
    #39637992
mbrdrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть DataGrid. Я заполняю колонки и для того, чтобы колонки были по размеру грида, я использую binding в свойство DataGrid его параметра ActualWidth. Без этого это не работает.

Если не изменять размер самого окна браузера, то всё работает как надо, но после ресайза ширина уже не меняется, так как благодаря биндингу DataGrid имеет фиксированный размер.

Что сделать, чтобы работало всё корректно и при загрузке и при ресайзе.

Мой код:

Код: 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.
<Grid Name="gridForDataGridNames">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition MinHeight="240" Height="*"></RowDefinition>
    </Grid.RowDefinitions>

    <sdk:DataGrid AutoGenerateColumns="False"  x:Name="dataGridForNames"
                    Width="{Binding ElementName=gridForDataGridNames, Path=ActualWidth}"
                    Grid.Row="0" Grid.Column="0" HeadersVisibility="None"
                    ItemsSource="{Binding Path=Names}">

        <sdk:DataGrid.Columns>
            <sdk:DataGridTemplateColumn Header="Image" Width="*">
                <sdk:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="{Binding LastName}"></Button>
                    </DataTemplate>
                </sdk:DataGridTemplateColumn.CellTemplate>
            </sdk:DataGridTemplateColumn>
        </sdk:DataGrid.Columns>
    </sdk:DataGrid>
</Grid>



Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39637999
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mbrdrg
Код: xml
1.
Width="{Binding ElementName=gridForDataGridNames, Path=ActualWidth}

Вот это зачем? DataGrid и так растянется на ширину Grid-а
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638015
mbrdrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prombrdrg
Код: xml
1.
Width="{Binding ElementName=gridForDataGridNames, Path=ActualWidth}

Вот это зачем? DataGrid и так растянется на ширину Grid-а

Я знаю. DataGrid будет растянут, но не колонка. Это решение я нагуглил ранее.
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638024
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в колонке стоит Width="*" - она тоже будет растянута на ширину DataGrid-а. Так что, пока непонятно, в чем проблема.

Правда, неясно, что такое sdk:, может вы используете не коробочный грид, но забыли нам об этом рассказать?
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638041
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте отключить горизонтальную прокрутку у DataGrid'а принудительно.
затем попробуйте сделать все колонки фиксированной длинны или авто, а последнюю *.
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638077
mbrdrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proв колонке стоит Width="*" - она тоже будет растянута на ширину DataGrid-а. Так что, пока непонятно, в чем проблема.

Правда, неясно, что такое sdk:, может вы используете не коробочный грид, но забыли нам об этом рассказать?

В sdk прописан следующий namespace - "xmlns:sdk=" http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

По факту, если я не сделаю данный binding, то из-за того, что в колонке стоит Width="*" он будет расширен полностью на всю страницу. Как я понимаю, это происходит из-за того, что Width не задан и он растягивается на всю ширину.
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638081
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mbrdrgПо факту, если я не сделаю данный binding, то из-за того, что в колонке стоит Width="*" он будет расширен полностью на всю страницу. Как я понимаю, это происходит из-за того, что Width не задан и он растягивается на всю ширину.Нет. Столбец (если он один) будет соответствовать ширине DataGrid. Тот, в свою очередь, будет соответствовать ширине Grid, который, в свою очередь, будет соответствовать ширине страницы.
А какое поведение вам требуется - загадка, но идете не тем путем.
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638084
mbrdrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtesпопробуйте отключить горизонтальную прокрутку у DataGrid'а принудительно.
затем попробуйте сделать все колонки фиксированной длинны или авто, а последнюю *.

Попробовал вашу идею. Колонка расширяется полностью до конца страницы.
Тут описано такое же решение.
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638089
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mbrdrgПопробовал вашу идею.не знаю, я никаких идей еще не предлагал. Потому что mbrdrgЧто сделать, чтобы работало всё корректноне раскрыто. Непонятно, какой результат вы хотите получить, вы изложили только свою попытку сделать ЧЕГО-ТО
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638097
mbrdrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.PrombrdrgПопробовал вашу идею.не знаю, я никаких идей еще не предлагал. Потому что mbrdrgЧто сделать, чтобы работало всё корректноне раскрыто. Непонятно, какой результат вы хотите получить, вы изложили только свою попытку сделать ЧЕГО-ТО

Сейчас изложу всё подробно.

У меня имеется приложение с DataGrid-ом.
В нём есть одна колонка, но она не растягивается на всю ширину DataGrid-а.
Я попробовал в чистом проекте создать DataGrid, не указывая его ширину, но указать в колонке Width="*" и всё работает. При изменении размеров окна, он также работает.

В моём приложении при загрузке страницы DataGrid растягивается по ширине, но данные внутри (один столбец) нет. Что может быть следствием такого поведения? В чистом проекте всё хорошо, а тут нет. Возможно из-за атрибутов родителей..
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638098
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так вы и ответили сами. Приведенный вами код рабочий, а кода "вашего приложения" мы не видели.

Отлаживайтесь. Если рабочий вариант, есть нерабочий. Приводите пошагово один из них к другому - найдете, в чем проблема.
...
Рейтинг: 0 / 0
DataGridColumn не меняет размер после изменения размера окна
    #39638250
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а для чего это нужно? чтоб выделение было FullRow? это можно реализовать на уровне шаблона
или для чего последняя пустая колонка? мне не очень понятен её смысл.
Без костылей это работать не будет. Колонок должно быть ровно столько, сколько отображается данных, остальные области можно определить в шаблоне.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGridColumn не меняет размер после изменения размера окна
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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