WPF StackPanel失去了它的孩子

时间:2011-03-24 19:45:47

标签: wpf drag-and-drop children stackpanel

我试图解决以下问题:

我有一个包含Image的StackPanel。但是,如果我做panel.Children.Count,它有时会返回0,有时为1.为什么?我怎样才能解决这个问题? 注意:我从MouseEvent的发送者Object获取StackPanel。

有谁知道如何解决我的问题?任何帮助表示赞赏:)

更新

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 个答案:

答案 0 :(得分:2)

我测试了代码并且它总是为我返回1,但是很少有信息可以知道你的结尾有什么问题。

您在多少个地方修改了StackPanel?
该事件处理程序是否由其他没有子项的StackPanel使用? 你是否使用一些奇怪的ControlTemplates导致嵌套的StackPanels?