В моем проекте у меня есть ItemsControl
, который имеет ItemsPanel
шаблон Grid
. Я хотел бы добавить один элемент управления с этой сеткой, полностью независимый от ItemsControl 'Items' , к которому можно получить доступ в коде. Каков наилучший способ сделать это?
Подробнее:
Я реализую временную шкалу анимации ключевых кадров в WPF.Я делаю это, имея набор «индикаторов», который связан с ItemsControl;Затем ItemsControl размещает каждый из них на сетке в соответствии с их положением, используя свойство Margin:
<DataTemplate x:Key="keyIndicatorTemplate">
<Border Width="1" Height="1"
BorderBrush="Black" Background="Black" BorderThickness="0"
HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="{Binding Converter={StaticResource ResourceKey=keyIndicatorMarginConv}}"
></Border>
</DataTemplate>
Затем эта сетка индикаторов автоматически масштабируется по ключевым кадрам и масштабируется ипанорамирование с использованием свойства ItemsControl LayoutTransform и охватывающего ScrollViewer:
<Grid>
<ScrollViewer Name="timelineScrollViewer" Background="LightCyan" HorizontalScrollBarVisibility="Visible">
<ItemsControl Name="KeyGridPresenter" ItemTemplate="{StaticResource ResourceKey=keyIndicatorTemplate}" >
<ItemsControl.LayoutTransform>
<ScaleTransform
ScaleX="{Binding Path=ZoomX, ElementName=TimelineUserControl}"
ScaleY="{Binding Path=ZoomY, ElementName=TimelineUserControl}">
</ScaleTransform>
</ItemsControl.LayoutTransform>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid Name="KeyGrid">
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
</Grid>
Я хотел бы добавить полупрозрачный «подсветчик / каретка», которым пользователь управляет с помощью мыши, но поскольку этот дизайн основан насетка, являющаяся абстрактной «поверхностью», для которой ItemsControl
и ScrollViewer
предоставляют «окно», мне нужно добавить элемент управления таким образом, чтобы к нему применялись преобразования контейнеров (т. е. брат или потомоксетка)
Как мне изменить мой ItemsTemplate
, чтобы он создавал один элемент управления (рамка / прямоугольник / и т. д.), независимый от элементов?