在我的WP 8.1应用程序中,我有MapControl:
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”会出现。该行为的代码:
signals:
#ifndef Q_MOC_RUN//this will be defined if moc runs, thus skipped
private:
#endif
void mySignal_inherited(); ///< DO NOT USE EXPLICITLY
我希望“contentGrid”始终高于其他标记,但其中一些标记位于我的“contentGrid”之上。我尝试在“contentGrid”中设置XAML中的Canvas.Zindex属性,但它不起作用。
答案 0 :(得分:0)
StackPanel
垂直(默认)或水平堆叠。
如果您希望StackPanel的子项位于“不同层”,
您最好使用StackPanel
或DataTemplate
Grid
的{{1}}
一个简单的解决方案是
Canvas
在网格将图像置于图形之前,在XAML中写入图像。
最后,如果你添加其他控件添加到网格/画布,你可以使用ZIndex。
否则我不确定ZIndex是否真的有必要
修改强>
<DataTemplate>
<Grid Tapped="myStack_Tapped" Maps:MapControl.Location="{Binding GeoPoint}" Maps:MapControl.NormalizedAnchorPoint="{Binding Anchor}">
<Image x:Name="myImage" Source="{Binding MapMarker}"/>
<Grid x:Name="contentGrid" Background="White" Height="150" Width="220" Visibility="Collapsed"/>
</Grid>
</DataTemplate>
是Canvas的附加属性。
但令人惊讶的是它适用于网格!
Zindex越大,控制越接近你的眼睛(超过其他控件)
此致