WPF StackPanel потерял своего ребенка - PullRequest
1 голос
/ 24 марта 2011

я пытаюсь решить следующую проблему:

У меня есть StackPanel, которая содержит изображение как.Но если я делаю panel.Children.Count, он иногда возвращает 0, а иногда 1. Почему?Как я могу это исправить?Примечание: я получаю StackPanel от объекта-отправителя MouseEvent.

У кого-нибудь есть идеи, как решить мою проблему?Любая помощь приветствуется:)

Обновление:

private void MoveContainer(object sender, MouseEventArgs e)
{
    StackPanel panel = sender as StackPanel;

    MessageBox.Show(panel.Children.Count.ToString());
}

Обновление 2:

<StackPanel Name="a1" AllowDrop="True"
                    PreviewMouseLeftButtonDown="StartDrag"
                    PreviewMouseMove="MoveContainer"
                    Visibility="Visible"
                    Background="Transparent">
            <Image Source="testcontainer.png" Width="60" Height="30"></Image>
</StackPanel>

Обновление 3:

private void StartDrag(object sender, MouseEventArgs e)
{

    startPos=e.GetPosition(null); //startPos is a local attribute
}

1 Ответ

2 голосов
/ 25 марта 2011

Я тестировал код, и он всегда возвращает мне 1, слишком мало информации, чтобы понять, что не так с вашей стороны.

В скольких местах вы модифицируете StackPanel?
Этот обработчик событий используется другими StackPanels, у которых нет дочерних элементов?
Используете ли вы какие-то странные ControlTemplates, которые вызывают вложенные StackPanels?

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