Focus и TabIndex на UserControls

У меня странное поведение: У меня есть MainWindow, содержащее textboxes и (простые) usercontrols (textbox и button), но для отладочных целей я урезал его до только textbox.

Когда я использую textboxes и usercontrols БЕЗ установки свойства TabIndex, курсор проходит через элементы управления в правильном порядке (в порядке добавления элементов управления в окно)

Когда я использую textboxes и usercontrols С установкой свойства TabIndex, курсор проходит через элементы управления в неправильном порядке (сначала все usercontrols, затем все textboxes), Это также верно, когда TabIndex установлен в значение, соответствующее порядку, в котором элемент управления был добавлен

Вот мой usercontrol

<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>

Следующий Mainwindow xaml приводит к порядку 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>

Следующий Mainwindow xaml приводит к порядку 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?

С уважением Klaus

6
задан H.B. 31 October 2011 в 21:35
поделиться