WPF StackPanel 失去了它的子项
我试图解决以下问题:
我有一个包含图像的 StackPanel。但如果我执行 panel.Children.Count 它有时会返回 0,有时会返回 1。为什么?我该如何解决这个问题? 注意:我从 MouseEvent 的发送者对象获取 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
}
im trying to solve the following problem:
I have a StackPanel that contains an Image as. But if I do panel.Children.Count it sometimes returns 0 and sometimes 1. Why? How can I fix this?
Note: I get the StackPanel from the sender Object of an MouseEvent.
Does anyone has an idea how to solve my problem? Any help is appreciated:)
Update:
private void MoveContainer(object sender, MouseEventArgs e)
{
StackPanel panel = sender as StackPanel;
MessageBox.Show(panel.Children.Count.ToString());
}
Update 2:
<StackPanel Name="a1" AllowDrop="True"
PreviewMouseLeftButtonDown="StartDrag"
PreviewMouseMove="MoveContainer"
Visibility="Visible"
Background="Transparent">
<Image Source="testcontainer.png" Width="60" Height="30"></Image>
</StackPanel>
Update 3:
private void StartDrag(object sender, MouseEventArgs e)
{
startPos=e.GetPosition(null); //startPos is a local attribute
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我测试了代码,它总是为我返回 1,但是信息太少,无法知道您的问题出在哪里。
你修改了StackPanel的多少个地方?
该事件处理程序是否被其他没有子项的 StackPanel 使用?
您是否使用了一些奇怪的 ControlTemplates 来导致嵌套的 StackPanels?
I tested the code and it always returns 1 for me, there is way too few information to know what is wrong on your end though.
In how many places do you modify the StackPanel?
Is that event handler used by other StackPanels which have no children?
Do you use some weird ControlTemplates which cause nested StackPanels?