В моей WP 8.1 приложение, которое я имею MapControl:Значение параметра Canvas.Zindex в DataTemplate
<Maps:MapControl x:Name="mapControl" ZoomLevelChanged="mapControl_ZoomLevelChanged" Grid.ColumnSpan="2" Grid.Column="0" Grid.Row="1">
<Maps:MapItemsControl x:Name="MapIcons" ItemsSource="{Binding}" >
<Maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Tapped="myStack_Tapped" Maps:MapControl.Location="{Binding GeoPoint}" Maps:MapControl.NormalizedAnchorPoint="{Binding Anchor}">
<Grid x:Name="contentGrid" Background="White" Height="150" Width="220" Visibility="Collapsed"/>
<Image x:Name="myImage" Source="{Binding MapMarker}"/>
</StackPanel>
</DataTemplate>
</Maps:MapItemsControl.ItemTemplate>
</Maps:MapItemsControl>
</Maps:MapControl>
На карте я получил маркеры, и когда я нажимаю один из них, «contentGrid» apears. Код для такого поведения:
private void myStack_Tapped(object sender, TappedRoutedEventArgs e)
{
StackPanel s = sender as StackPanel;
Grid contentBox = s.FindName("contentGrid") as Grid;
contentBox.Visibility = Visibility.Visible;
}
Я хочу видеть «contentGrid» всегда выше других маркеров, но некоторые из них выше моего «contentGrid». Я попытался установить свойство Canvas.Zindex в XAML в «contentGrid», но он не работает.
I attach screenshot to exemplify my problem.
Если вы хотите увидеть contentGrid выше других маркеров, установка ZIndex не поможет, потому что это будет только по отношению к панели в DataTemplate, но не к ItemsPanel MapItemsControl. Вы можете либо установить ZIndex в ItemContainerStyle, либо добавить второй MapItemsControl с contentGrids поверх первого. – Clemens
@Clemens Я создал два MapItemsControl согласно вашему предложению, и он отлично работает. Спасибо, человек, ты отличный :) – druy10