我在一个窗口中有4个用户控件>> 我想要做的就是当我点击它时,将它们中的任何一个带到所有这些前面。
答案 0 :(得分:0)
您可以使用Panel.SetZIndex
将控件放在前面
答案 1 :(得分:0)
使用Panel.ZIndex
属性。可以找到更多here
示例
<Canvas Background="Ivory"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas>
<Rectangle Height="60" Width="60" Fill="Gold"/>
<Rectangle Height="50" Width="70" Fill="Coral"/>
<Rectangle Height="40" Width="80" Fill="Teal"/>
<Rectangle Height="30" Width="90" Fill="Black"/>
</Canvas>
<Canvas Canvas.Left="120">
<Rectangle Canvas.ZIndex="99" Height="60" Width="60" Fill="Gold"/>
<Rectangle Canvas.ZIndex="98" Height="50" Width="70" Fill="Coral"/>
<Rectangle Canvas.ZIndex="97" Height="40" Width="80" Fill="Teal"/>
<Rectangle Canvas.ZIndex="96" Height="30" Width="90" Fill="Black"/>
</Canvas>
</Canvas>
注意第二组Rectangle对象是如何从第一组Rectangle对象以反向z顺序分层的:
默认和显式Z顺序
答案 2 :(得分:0)
你必须将所有元素都放在画布中
<Canvas x:Name="Canvas1" HorizontalAlignment="Left" Margin="97,131,0,150" Width="153">
<Rectangle x:Name="E1" Canvas.ZIndex="98" Fill="#FFF4F4F5" Stroke="Black" Width="100" Height="100" Canvas.Left="53" Canvas.Top="60" MouseDown="E1_MouseDown"/>
<Rectangle x:Name="E2" Canvas.ZIndex="99" Fill="#FFF4F4F5" Stroke="Black" Width="88" Height="134" MouseDown="E2_MouseDown"/>
</Canvas>
然后你必须在MouseDown
事件
P.S&gt;&gt;我只举了两个元素E1
和E2
private void E1_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
int zOrder = Canvas.GetZIndex(E2)+1;
Canvas.SetZIndex(E1,zOrder);
}
private void E2_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
int zOrder = Canvas.GetZIndex(E1)+1;
Canvas.SetZIndex(E2,zOrder);
}