我在Silverlight 5中有一个TextBox,我在Code中设置Text值。当文本框可见性可见时,它将触发TextChanged事件,但只要您将其设置为折叠,它就不会再触发。
有没有人有这方面的经验?我找到了1 site,其中有人也经历过这个问题但从未得到过回答。
如果关闭,我会实施临时黑客手动触发,但如果我无法解决问题,我需要重新编写大部分代码以完全使用不同的路径。
由于
答案 0 :(得分:0)
如果控件的可见性设置为Collapsed,则不会触发事件。 Silverlight中没有隐藏的可见性。但你可以设置Opacity = 0使其隐藏。你也想在你设置Opacity = 0的元素上将IsHitTestVisible设置为false,否则用户仍然可以点击它,即使它们意味着点击一些底层元素。事件将在那时开始。
<TextBox TextChanged="textBox1_TextChanged" x:Name="txt" Opacity="0" IsHitTestVisible="False"/>
或者你必须明确地发射它。
答案 1 :(得分:0)
如果我没有弄错的话,实际上IsHitTestVisible="False"
意味着TextChanged
事件也不会被解雇。
所以只需要Opacity="0"
而不是Collapsed
的可见性(您也可以使TextBox
变小,以进一步确保它永远不会被击中:)