Задать вопрос
LoneRay
@LoneRay
Начинающий кодировщик.

Как создать общее свойство для элементов?

Всем добрый вечер. Дайте пример пожалуйста общего свойства для элементов. Например у меня есть много элементов, а у них свойство "Ширина", так вот чтобы для каждого одно и тоже число ширины не писать, как можно сделать общее? То есть чтобы на одну строку ссылались все элементы.
  • Вопрос задан
  • 633 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Нужно указать тип элементов, которым требуется указать стили. В DataGrid ячейки находятся в элементе DataGridCell, а заголовки - в DataGridColumnHeader.
<DataGrid>
    <DataGrid.Columns>
        <DataGridTextColumn Header="Qwe"/>
        <DataGridTextColumn Header="Rty"/>
        <DataGridTextColumn Header="Uio"/>
    </DataGrid.Columns>
    <DataGrid.Resources>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="Width" Value="100"/>
        </Style>
    </DataGrid.Resources>
</DataGrid>

Можно положить стиль не в ресурсы, а в специальный контейнер. Разница в том, что стиль в ресурсах применяется во все вложенные подходящие элементы, даже вложенные внутри ячеек (например, в другой DataGrid внутри ячейки). Стиль в ColumnHeaderStyle будет использован только в заголовках этого DataGrid. Пример:
<DataGrid.ColumnHeaderStyle>
    <Style TargetType="DataGridColumnHeader">
        <Setter Property="Width" Value="100"/>
    </Style>
</DataGrid.ColumnHeaderStyle>

Если указывать стиль элементов, то этот стиль не добавляется к текущему, а заменяет предыдущий стиль. Чтобы стиль добавлялся к уже существующем стилю, то стиль нужно наследовать от старого:
<DataGrid.ColumnHeaderStyle>
    <Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
        <Setter Property="Width" Value="100"/>
    </Style>
</DataGrid.ColumnHeaderStyle>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Так есть стили (< Style >)
В стиле прописываете
< Style TargetType="Тип ваших элементов" >
 < Setter Property="Width" Value="250" />
< /Style >
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы