Как использовать значение левого поля в триггере? - PullRequest
0 голосов
/ 24 октября 2018

Я ищу решение в xaml.Я хотел бы иметь что-то вроде этого:

<TextBlock HorizontalAlignment="Center">
    <TextBlock.Margin>
        <MultiBinding
            ...
        </MultiBinding>
    </TextBlock.Margin>
    <TextBlock.Triggers>
        <Trigger Property="Margin.Left"  Value="0" >
            <Setter Property="HorizontalAlignment" Value="Left" />
        </Trigger>
    </TextBlock.Triggers>
</TextBlock>

Я имею в виду установить HorizontalAlignment = Left, только если левое поле textblock равно 0. Но я не могу использовать Margin.Left вусловие срабатывания.Однако я знаю, что могу использовать конкретное значение маржи, но только в установщиках:

<Grid x:Name="myGrid" Grid.Row="1" Margin="30,0">
<Grid.Style>
  <Style TargetType="Grid">
    <Style.Triggers>
      <DataTrigger Binding="{Binding UI_Preferences.RightPanelPinned}" Value="true" >
        <Setter Property="Margin">
          <Setter.Value>
            <Thickness Left="200"/>
          </Setter.Value>
        </Setter>
      </DataTrigger>
    </Style.Triggers>
  </Style>
</Grid.Style>

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете использовать DataTrigger в стиле.Горизонтальное выравнивание по умолчанию также должно быть установлено стилем, а не непосредственно в TextBlock, потому что это будет иметь более высокий приоритет значения.

<TextBlock ...>
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Margin.Left,
                                               RelativeSource={RelativeSource Self}}" 
                             Value="0">
                    <Setter Property="HorizontalAlignment" Value="Left" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...