Панель.zIndex из ItemsControl не работает на холсте в WPF .СЕТЕВОЕ основное приложение

#c# #wpf #data-binding #z-index #itemscontrol

Вопрос:

У меня есть холст внутри пользовательского элемента управления. Внутри холста у меня есть изображение и элемент управления. например: .. /gt; Элемент управления элементами выглядит следующим образом:

 lt;ItemsControl   x:Name="itmZoneShapes"  ItemsSource="{Binding LastSelectedZone.PredefinedSelectedLogicalZones}"gt;  lt;ItemsControl.ItemsPanelgt;  lt;ItemsPanelTemplategt;  lt;Canvas/gt;  lt;/ItemsPanelTemplategt;  lt;/ItemsControl.ItemsPanelgt;  lt;ItemsControl.ItemContainerStylegt;  lt;Style TargetType="ContentPresenter"gt;  lt;Setter Property="Canvas.Left" Value="{Binding Path=RectangleCanvasLeft}" /gt;  lt;Setter Property="Canvas.Top" Value="{Binding Path=RectangleCanvasTop}" /gt;  lt;Setter Property="Panel.ZIndex" Value="{Binding Path=RectangleCanvasZIndex}" /gt;  lt;/Stylegt;  lt;/ItemsControl.ItemContainerStylegt;  lt;ItemsControl.ItemTemplategt;  lt;DataTemplategt;  lt;Rectangle  StrokeThickness="2"  Stroke="Black"  Tag="{Binding Path=RectangleName}"  Width="{Binding Path=RectangleWidth}"  Height="{Binding Path=RectangleHeight}"  RadiusX="{Binding Path=RectangleRadiusX}"  RadiusY="{Binding Path=RectangleRadiusY}"gt;  lt;Rectangle.Fillgt;  lt;SolidColorBrush   Color="{Binding Path=RectangleBackgroundColor,   UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"  Opacity="0.4"/gt;  lt;/Rectangle.Fillgt;  lt;Rectangle.Clipgt;  lt;RectangleGeometry Rect="{Binding Path=RectangleClip}"/gt;  lt;/Rectangle.Clipgt;  lt;/Rectanglegt;  lt;/DataTemplategt;  lt;/ItemsControl.ItemTemplategt;  lt;/ItemsControlgt;  

Проблема в том, что привязанная панель.zIndex каким-то образом работает только на холсте из тега ItemsPanelTemplate.

Чего я хочу, так это иметь возможность устанавливать панель.zIndex для каждого элемента внутри элемента управления и показать прямоугольник над изображением или под изображением ( на основе панели.Зиндекс ). Прямо сейчас я могу изменить только панель управления элементами.zIndex но проблема в том, что все элементы в шаблоне данных будут иметь один и тот же zIndex.

Есть ли возможность привязать панель.zIndex для каждого элемента в ItemsControl и правильно отображаться в пользовательском интерфейсе ?

Комментарии:

1. » Панель. zIndex каким — то образом работает только на холсте из тега ItemsPanelTemplate» — именно так он должен работать. zIndex влияет только на прямую родительскую панель элемента, а не на любую другую возможную панель в визуальном дереве. Отображение некоторых элементов выше и некоторых ниже элемента пользовательского интерфейса вне визуального дерева ItemsControl невозможно. Вам нужно будет иметь два элемента управления.

2. «проблема в том, что все элементы в шаблоне данных будут иметь один и тот же zIndex».. Тогда почему бы вам не обернуть содержимое таблички данных в сетку? На самом деле не совсем ясно, чего ты хочешь.