Установка Silverlight ZIndex из UserControl - PullRequest
1 голос
/ 02 февраля 2011

Как мне установить ZIndex UserControl?Я пробовал

Canvas.SetZIndex((Tile)sender, 99);
((Tile)sender).SetValue(Canvas.ZIndexProperty, 99);

Плитка - это имя моего UserControl. У меня есть Rectangle внутри UserControl, который фактически отображается на экране.Я также пытался

Canvas.SetZIndex(((Tile)sender).rect, 99);
((Tile)sender).rect.SetValue(Canvas.ZIndexProperty, 99);

Редактировать:

Вот что такое XAML для моего UserControl

<UserControl x:Class="Carcassonne.Tile"
    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="76" d:DesignWidth="76">

    <Canvas x:Name="LayoutRoot" Background="Transparent">
        <Rectangle x:Name="rect" 
                   Width="76" Height="76"
                   HorizontalAlignment="Left">
            <Rectangle.Fill>
                <ImageBrush x:Name="tileImage">
                    <ImageBrush.RelativeTransform>
                        <RotateTransform x:Name="rotation" CenterX="0.5" CenterY="0.5" Angle="0" />
                    </ImageBrush.RelativeTransform>
                </ImageBrush>
            </Rectangle.Fill>
        </Rectangle>
    </Canvas>
</UserControl>

1 Ответ

1 голос
/ 03 февраля 2011

Вот некоторые предположения:

  • У вас есть какой-то внешний UserControl или Page.
  • Этот внешний UserControl содержит Canvas.
  • Этот холст, в свою очередь, имеет несколько прямых потомков, которые являются экземплярами вашего Carcassonne.Tile элемента управления.
  • Вы прикрепили обработчик события к каждому событию Left Mouse Down, в котором вы хотите поднять затронутую плитку вверх.

В таком случае код, который вы уже использовали, должен работать: =

Canvas.SetZIndex((Tile)sender, 99); 

За исключением того, что вы нажимаете на другие плитки, они тоже заканчиваются 99-Z-индексом. Все, что вам нужно, это хранить в общих чертах последнее использованное значение Zindex, а затем увеличивать и использовать его значение каждый раз, когда происходит событие.

Этот ответ, вероятно, не поможет из-за всех предположений, одно или несколько из которых могут быть неверными. Если бы вы могли быть более информативными в своем вопросе, можно найти более подходящий ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...