Динамическое перемещение элемента во время прокрутки
У меня есть ListBox, у которого ItemsPanel - DockPanel и ItemsTemplate - Grid с 2мя строками: в первой TextBlock, во второй еще один горизонтальный список элементов, допустим еще один ListBox или ItemsControl.
<ListBox ItemsSource="{Binding Path=Collection}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Grid.Row="0">
<Grid>
<TextBlock Margin="3"
x:Name="ThisTextBlockMustMove"
HorizontalAlignment="Left"
VerticalAlignment="Top"
FontSize="24"
Text="{Binding Path=~~}" />
<i:Interaction.Behaviors>
<behaviors:UIelementInCenterWhenScrollBehavior Direction="Horizontal" />
</i:Interaction.Behaviors>
<TextBlock />
</Grid>
</Border>
<ItemsControl Grid.Row="1"
ItemsSource="{Binding Path=Collection2}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Расположение TextBlock в первой строке должно всегда находится в центре видимого пространства несмотря на прокрутку, то есть "ездить над внутренним списком" вплоть до его границ в обе стороны.
Я пытался добиться этого используя событие прокрутки первого ListBox'а, каждый раз при этом задавая отступы влево и вправо, но толком ничего не добился, поиск тоже не особо помог, либо я просто не совсем понимаю, что я должен искать..
Собственно был бы благодарен, если бы вы подсказали на что нужно обратить внимание или какие есть способы сделать нужный функционал..