2016-04-22 23 views
0

我有一个控件,允许用户添加和操作n个图形和文本图层。这些图层都是添加到父级控件画布的用户控件。我使用父控件的LayoutUpdated事件来刷新变换特定的变量和其他东西。没有更改处理程序方法,LayoutUpdate事件停止触发。我明显做了一些导致它的事情,但我从来没有纠缠过任何能够在逻辑上解决这个新问题的东西。任何想法赞赏 - 谢谢。 只是为了澄清:我没有要求解决方案 - 只是一个类似的经验轶事 - 这可能会比你想象的更有帮助。谢谢LayoutUpdated事件已停止触发。处理程序到位了,有什么想法?

+0

我们不知道你可能做了什么而没有看到相关的代码。 –

+0

只是想知道是否有人曾经体验过它 - 往往另一个人的经验是有价值的。 – RLB

回答

0

原因,在这种情况下,是在设计时在xaml中定义的WPF UserControl(kid),在canvas中没有设置任何依赖项属性值。画布在另一个不同类型的用户控件(妈妈)内。在运行时,妈妈被实例化,并根据妈妈的运行时间大小调整孩子的大小,定位并在妈妈的画布中可见,并调用表示孩子是否可见的参数。这个小孩的实例只有在被要求可见时才被确定大小和位置,如果不是,它只被隐藏(不是大小,没有定位)。
在妈妈的画布中存在这个实例化的,但未定位和未定位的元素导致layoutupdated事件触发失败。这种情况不仅影响到有问题的实例,而且还影响到后续项目中运行时创建的所有其他实例。 (注意 - 没有例外)

适合这种情况的解决方案是明确地确定这个元素的大小和放置在画布内 - 即使它不是必需的。 layoutupdated事件然后按预期发射。我很乐意提供一个更深刻和广义的答案,但也许更聪明的人也可以包括他们的洞察力。谢谢

相关问题