2017-10-13 11 views
0

私はTabControlを持つウィンドウを持っており、TabControlの中にはTextBoxがあります。WPF TabIndexがTabControlで機能しない

TabOrderは、TabIndexesを設定する方法を行うべきではありません。
CheckBoxとボタンの後にあるTabItemとTextBoxに移動します。

<Grid HorizontalAlignment="Left" Height="140" Margin="10,570,0,0" VerticalAlignment="Top" Width="290"> 
     <TextBlock x:Name="reasonBlock" HorizontalAlignment="Left" Margin="0,10,0,0" TextWrapping="Wrap" Text="Grund:" VerticalAlignment="Top" FontSize="14"/> 
     <TextBox x:Name="reasonBox" HorizontalAlignment="Left" Height="106" Margin="0,34,0,0" VerticalAlignment="Top" Width="290" AcceptsReturn="True" HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Auto" MaxWidth="389" TextWrapping="Wrap" TabIndex="10"/> 
    </Grid> 

    <Grid x:Name="typeGrid" HorizontalAlignment="Left" Height="170" Margin="320,540,0,0" VerticalAlignment="Top" Width="389"> 
     <TextBlock x:Name="typeBlock" HorizontalAlignment="Left" Margin="0,10,0,0" TextWrapping="Wrap" Text="Art der Änderung:" VerticalAlignment="Top" FontSize="14"/> 
     <TabControl x:Name="typeControl" HorizontalAlignment="Left" Height="136" Margin="0,34,0,0" VerticalAlignment="Top" Width="389"> 
      <TabItem Header="Allgemein" TabIndex="19"> 
       <Grid Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> 
        <TextBox x:Name="typeBox" HorizontalAlignment="Left" Height="101" VerticalAlignment="Top" Width="379" AcceptsReturn="True" HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Auto" MaxWidth="379" TextWrapping="Wrap" TabIndex="20"/> 
       </Grid> 
      </TabItem> 
     </TabControl> 
    </Grid> 

    <Grid HorizontalAlignment="Left" Height="95" Margin="714,615,0,0" VerticalAlignment="Top" Width="126"> 
     <Button x:Name="createButton" Content="Erstellen" HorizontalAlignment="Right" Margin="0,70,0,0" VerticalAlignment="Top" Width="111" Click="createButton_Click" FontSize="14" BorderBrush="{DynamicResource ButtonBorderBrush}" TabIndex="101"/> 
     <CheckBox x:Name="publicBox" Content="Veröffentlichen" HorizontalAlignment="Right" Margin="0,31,0,0" VerticalAlignment="Top" TabIndex="100"/> 
    </Grid> 

答えて

0

以前のTextBoxのKeyDownイベントを購読し、Tabキーを押すとTabItemにフォーカスを当てるように修正しました。

private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key != Key.Tab) 
     { 
      return; 
     } 
     else 
     { 
      TabItem tabItem = (TabItem)typeControl.SelectedItem; 

      tabItem.Focus(); 

      e.Handled = true; 
     } 
    } 
関連する問題