Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / xaml grid margin style / 7 сообщений из 7, страница 1 из 1
07.04.2016, 15:43
    #39210328
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
Здравствуйте!

Подскажите пожалуйста как установить стиль Label через стили ColumnDefinitions.Resource. Вроде делаю все правильно, но почему-то не срабатывает.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<Grid HorizontalAlignment="Left">
     <Grid.ColumnDefinitions>
            <ColumnDefinition Width="190">
                  <ColumnDefinition.Resources>
                        <Style TargetType="{x:Type Label}">
                             <Setter Property="Margin" Value="20,0,0,0" />
                        </Style>
                  </ColumnDefinition.Resources>
            </ColumnDefinition>
                  <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                  <RowDefinition />
            </Grid.RowDefinitions>
      <Label Grid.Column="0" Grid.Row="0"  Content="ААА" HorizontalAlignment="Left" VerticalAlignment="Center"/>
      <wpf:ComboBox />
</Grid>
...
Рейтинг: 0 / 0
07.04.2016, 16:02
    #39210353
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
Nechtoустановить стиль Label через стили ColumnDefinitions.ResourceНикак, метка не находится внутри ColumnDefinition, так что этот стиль на нее не повлияет.

Объявляй на уровне грида.
...
Рейтинг: 0 / 0
07.04.2016, 18:05
    #39210492
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
ресурсы можно определять только в объектах визуального дерева,
Column~ и RowDefenision у Grid, это не объекты визуального дерева, а обычные свойства, даже не свойства зависимости.
это обычная коллекция, которая обладает возможностью нотификации для Грида о своих изменениях (не ObservableCollection)
Сами ColumnDefinision и RowDefinision наследуются от FrameworkContentElement потому, что в них применяется Binding, а Binding работает только в DependencyObject объектами и свойствами зависимостей.

Если необходимо определить в определенном столбце соответствующий стиль объекта, нужно либо поместить контейнер в нужном месте грида и задать ему стиль, либо задать ключ стиль не по умолчанию, а собственный и настроить стиль у содержимого грида так, как вам надо.
...
Рейтинг: 0 / 0
07.04.2016, 18:13
    #39210497
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
Roman MejtesЕсли необходимо определить в определенном столбце соответствующий стиль объекта, нужно либо поместить контейнер в нужном месте грида и задать ему стиль, либо задать ключ стиль не по умолчанию, а собственный и настроить стиль у содержимого грида так, как вам надо.Как вариант, применить стиль триггером, где (Grid.Column)="0"
...
Рейтинг: 0 / 0
08.04.2016, 06:28
    #39210679
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
Shocker.ProRoman MejtesЕсли необходимо определить в определенном столбце соответствующий стиль объекта, нужно либо поместить контейнер в нужном месте грида и задать ему стиль, либо задать ключ стиль не по умолчанию, а собственный и настроить стиль у содержимого грида так, как вам надо.Как вариант, применить стиль триггером, где (Grid.Column)="0"

Как это сделать?
...
Рейтинг: 0 / 0
08.04.2016, 12:58
    #39210995
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  <Grid HorizontalAlignment="Left">
    <Grid.Resources>
      <Style TargetType="Label">
        <Style.Triggers>
          <Trigger Property="Grid.Column" Value="0">
            <Setter Property="Margin" Value="20,0,0,0" />
          </Trigger>
        </Style.Triggers>
      </Style>
    </Grid.Resources>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="190" />
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
      <RowDefinition />
    </Grid.RowDefinitions>
    <Label Grid.Column="0" Grid.Row="0"  Content="ААА" HorizontalAlignment="Left" VerticalAlignment="Center"/>
    <Label Grid.Column="1" Grid.Row="0"  Content="BBB" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  </Grid>


только
а) это несколько громоздкий путь, лучше по возможности все-таки использовать вложенные контейнеры или явное указание стиля
б) это будет влиять на все метки нулевого столбца всех вложенных гридов
...
Рейтинг: 0 / 0
09.04.2016, 10:37
    #39211603
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xaml grid margin style
Shocker.Pro
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  <Grid HorizontalAlignment="Left">
    <Grid.Resources>
      <Style TargetType="Label">
        <Style.Triggers>
          <Trigger Property="Grid.Column" Value="0">
            <Setter Property="Margin" Value="20,0,0,0" />
          </Trigger>
        </Style.Triggers>
      </Style>
    </Grid.Resources>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="190" />
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
      <RowDefinition />
    </Grid.RowDefinitions>
    <Label Grid.Column="0" Grid.Row="0"  Content="ААА" HorizontalAlignment="Left" VerticalAlignment="Center"/>
    <Label Grid.Column="1" Grid.Row="0"  Content="BBB" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  </Grid>


только
а) это несколько громоздкий путь, лучше по возможности все-таки использовать вложенные контейнеры или явное указание стиля
б) это будет влиять на все метки нулевого столбца всех вложенных гридов
самоё классное в свойстве Margin это то, что можно задать отрицательное значение :) у Padding такое нельзя :)
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / xaml grid margin style / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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