Я не совсем уверен, что понимаю вашу проблему, но я попробовал пример по одной из ссылок, и мне удалось переместить фокус на следующий компонент из кода точно так же, как вы сделали бы это с помощью клавиатуры. Вот код.
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
xmlns:local="clr-namespace:WpfApplication1" Loaded="OnLoaded"
>
<StackPanel Margin="10">
<TextBox Margin="10" x:Name="a" >A</TextBox>
<TextBox Margin="10" x:Name="b" >B</TextBox>
<Button Focusable="False" Click="OnClick">Move Focus</Button>
</StackPanel>
</Window>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void OnLoaded(object sender, RoutedEventArgs e) {
a.Focus();
}
private void OnClick(object sender, RoutedEventArgs e) {
var request = new TraversalRequest(FocusNavigationDirection.Next);
var elementWithFocus = FocusManager.GetFocusedElement(FocusTest) as UIElement;
if (elementWithFocus != null)
elementWithFocus.MoveFocus(request);
}
}
personJatinschedule20.05.2013
comment
попробуйте сделать так, чтобы FocusVisualStyle применялся после загрузки компонента, это невозможно сделать и это моя проблема
- personJ. Lennon; 20.05.2013
comment
Я неправильно понял вашу проблему. Теперь я вижу вашу проблему. Очень жаль.
- personJatin; 20.05.2013