我试图解决以下问题:
我有一个包含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
}
答案 0 :(得分:2)
我测试了代码并且它总是为我返回1,但是很少有信息可以知道你的结尾有什么问题。
您在多少个地方修改了StackPanel?
该事件处理程序是否由其他没有子项的StackPanel使用?
你是否使用一些奇怪的ControlTemplates导致嵌套的StackPanels?