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