【问题标题】:Silverlight Textbox not firing TextChanged when CollapsedSilverlight 文本框在折叠时未触发 TextChanged
【发布时间】:2013-07-21 10:03:40
【问题描述】:

我在 Silverlight 5 中有一个 TextBox,我在其中从 Code 设置 Text 值。当 Textbox Visibility 为 Visible 时,它​​会触发 TextChanged 事件,但一旦您将其设置为 Collapsed,它就不会再触发了。

有人有这方面的经验吗?我发现 1 site 有人也遇到过此问题但从未得到答复。

如果关闭,我将实施一个临时黑客手动触发,但如果我无法解决问题,我将需要重新编写大部分代码以完全使用不同的路径。

谢谢

【问题讨论】:

    标签: silverlight textbox textchanged


    【解决方案1】:

    如果控件的可见性设置为折叠,则不会触发事件。 Silverlight 中没有隐藏可见性。但是您可以设置 Opacity=0 以使其隐藏。您还需要在已设置 Opacity=0 的元素上将 IsHitTestVisible 设置为 false,否则用户仍然可以单击它,即使他们的意思是点击一些底层元素。然后该事件将触发。

    <TextBox  TextChanged="textBox1_TextChanged" x:Name="txt" Opacity="0" IsHitTestVisible="False"/>
    

    或者你必须明确地触发它。

    【讨论】:

    • 谢谢,这是有道理的,我已经设法实现了一个完全不同的解决方案,使其更健壮,而不是使用黑客。不过,我会牢记这种方法,并在时间允许的情况下考虑使用该方法。感谢帮助:)
    【解决方案2】:

    如果我没记错的话,实际上创建IsHitTestVisible="False" 意味着TextChanged 事件也不会被触发。

    所以Opacity="0" 而不是Collapsed 可见性是所有需要的(你也可以使TextBox 的尺寸很小,以进一步确保它永远不会被击中:)

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多