У меня возникла проблема, когда мне нужно указать UIElement внутри ListBox, но я не могу, потому что он будет проходить цикл и, очевидно, не может иметь миллион маленьких TextBlock работает с тем же именем.Уникальное имя элемента внутри Listbox
Вот моя упрощенная версия моего ListBox:
<ListBox Background="Transparent">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<RelativePanel">
<TextBlock FontSize="12" Text="{Binding Path=Hub}" FontWeight="Bold" Name="firstText" />
<TextBlock FontSize="12" Text="{Binding Path=Stats.Pages}" Name="secondText" RelativePanel.RightOf="firstText" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1100" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="secondText.(RelativePanel.RightOf)" Value="hubText" />
</VisualState.Setters>
</VisualState>
<VisualState>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="secondText.(RelativePanel.Below)" Value="firstText" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</RelativePanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Для моей ситуации я пытаюсь использовать AdaptiveTriggers на RelativePanel установить позиционирование secondText
TextBlock справа от firstText
, когда есть более широкий экран и снизу, когда есть меньший экран.
Насколько я знаю, единственный способ, которым я могу это изменить, - это использовать Setter для имени, поэтому мне нужно было бы как-то уникально? Есть лучший способ сделать это?
EDIT: Хорошо, так что компилируется и побежал штраф (RelativePanel.RightOf работает на начальном этапе), но AdaptiveTriggers не работает, и VS бросает tissy о разметке. Что я могу сделать?
Кроме того, убедитесь, что вы * имя * своей 'VisualState' тоже. –
Большое вам спасибо! Работал как шарм. – m0ngr31