Bạn có thể thực hiện việc này bằng cuộc gọi MoveFocus. Bạn có thể lấy mục hiện đang được tập trung thông qua FocusManager. Đoạn mã sau sẽ lặp lại tất cả các đối tượng trong cửa sổ và thêm chúng vào một danh sách. Lưu ý rằng điều này sẽ thay đổi vật lý cửa sổ bằng cách chuyển tiêu điểm. Rất có thể mã sẽ không hoạt động nếu cửa sổ không hoạt động.
// Select the first element in the window
this.MoveFocus(new TraversalRequest(FocusNavigationDirection.First));
TraversalRequest next = new TraversalRequest(FocusNavigationDirection.Next);
List<IInputElement> elements = new List<IInputElement>();
// Get the current element.
UIElement currentElement = FocusManager.GetFocusedElement(this) as UIElement;
while (currentElement != null)
{
elements.Add(currentElement);
// Get the next element.
currentElement.MoveFocus(next);
currentElement = FocusManager.GetFocusedElement(this) as UIElement;
// If we looped (If that is possible), exit.
if (elements[0] == currentElement)
break;
}
Nguồn
2009-04-30 22:48:58
genial, cảm ơn bạn rất nhiều! – lamarmora