2
我需要强制Silverlight提交聚焦元素(在我的情况下是TextBox,但可能是任何东西)的代码。在WPF中我使用在Silverlight中提交聚焦元素
public static void CommitFocusedElement() {
UIElement element = Keyboard.FocusedElement as UIElement;
if (element != null) {
TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
FocusNavigationDirection directionBack = FocusNavigationDirection.Previous;
if (!element.MoveFocus(request)) {
request = new TraversalRequest(FocusNavigationDirection.Previous);
directionBack = FocusNavigationDirection.Next;
element.MoveFocus(request);
}
if (element.Focusable)
{
element.Focus();
}
else
{
element.MoveFocus(new TraversalRequest(directionBack));
}
}
}
但是这段代码的几个部分不是Silverlight兼容的。任何人都可以将我指向Silverlight替代品吗?
谢谢。如果我不知道要更新的确切元素,有没有办法通过活动控件/窗口上的所有元素来枚举? – Jeff 2010-06-04 12:34:03
@ jeffn825:您可以使用VisualTreeHelper遍历元素的子元素:http://msdn.microsoft.com/en-us/library/ms635657(v=VS.95).aspx,但我怀疑这是必需的。一旦用户点击任何地方或标签,所有来源应该自动更新。 – 2010-06-04 13:03:32
似乎没有发生。具体来说,我有一个用户输入文本框,然后他们击中输入。这应该以编程方式使用文本框中的信息启动新表单...但文本框似乎没有提供该值。虽然有很多文本框,所以我不知道用户在输入时输入了哪个文本框... – Jeff 2010-06-04 14:13:46