У меня странное поведение:
У меня есть MainWindow, содержащее текстовые поля и (простые) пользовательские элементы управления (текстовое поле и кнопка), но я удалил это только для текстового поля в целях отладки.
Когда я использую текстовые поля и элементы управления пользователя БЕЗ установки свойства TabIndex, курсор перемещается по элементам управления в правильном порядке (в порядке добавления элементов управления в окно)
Когда я использую текстовые поля и usercontrols WITH, устанавливая свойство TabIndex, курсор перемещается по элементам управления в недопустимом порядке (сначала все usercontrols, затем все текстовые поля), это также верно, если для TabIndex установлено значение, соответствующее порядку контроль был добавлен
Вот мой пользовательский контроль
<UserControl x:Class="SmallControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
>
<TextBox x:Name="txTEXT" Text="{Binding Text}" />
</UserControl>
Следующее xaml Mainwindow приводит к порядку 000000,111111,222222,333333, вот и все
<GroupBox Header="Small,Textbox,Small,TextBox without TabIndex">
<UniformGrid Columns="4">
<local:SmallControl Text="000000" />
<TextBox Text="111111" />
<local:SmallControl Text="222222" />
<TextBox Text="333333" />
</UniformGrid>
</GroupBox>
Следующее xaml Mainwindow приводит к порядку 000000,222222,111111,333333, это НЕ нормально
<GroupBox Header="Small,Textbox,Small,TextBox with TabIndex">
<UniformGrid Columns="4">
<local:SmallControl TabIndex="0" Text="000000" />
<TextBox TabIndex="1" Text="111111" />
<local:SmallControl TabIndex="2" Text="222222" />
<TextBox TabIndex="3" Text="333333" />
</UniformGrid>
</GroupBox>
Есть ли способ использовать TabIndex без необходимости добавлять элементы управления в «правильном» порядке в xaml?
С уважением
Клаус