Имам usercontrol, който поставям в мрежа. Вътре в мрежата аз също рисувам линии. Тези линии се показват над usercontrol, както трябва.
Когато потребителят кликне върху моята потребителска контрола, показвам друга част от usercontrol, елемент xaml (правейки го видим) и трябва да се появи над изчертаните линии.
Опитах се Canvas.ZIndex.Това изглежда работи само с елементи вътре в моя usercontrol.Ако задам usercontrols ZIndex високо, след това всичко се появява над линиите.
Ето минимум пример:
Трябва синият квадрат да остане под черната линия и жълтата елипса да е над черна линия.
--Главна страница--
<UserControl xmlns:SWE_UserControlOverlap="clr-namespace:SWE_UserControlOverlap" x:Class="SWE_UserControlOverlap.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<SWE_UserControlOverlap:SWE />
<Line Stroke="Black" StrokeThickness="10" Stretch="Fill" X1="0" Y1="0" X2="1" Y2="1"></Line>
</Grid>
</UserControl>
--UserControl--
<UserControl x:Class="SWE_UserControlOverlap.SWE"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Rectangle Fill="Blue" MouseLeftButtonUp="Rectangle_MouseLeftButtonUp_1"></Rectangle>
<Ellipse Margin="100" Fill="Yellow" ></Ellipse>
</Grid>
</UserControl>
Отговори:
0 за отговор № 1Не нагласете ZIndex на контрола, просто го променете за подконтрола.
<Line Canvas.ZIndex="1" />
<Rectangle Canvas.ZIndex="0" />
<Ellipse Canvas.ZIndex="2" />
0 за отговор № 2
Както намерих в различни места в интернет - това просто не е възможно.