2013-06-21 6 views
1

Я пишу приложение с вкладками, где я использовал tabcontrol с 4 вкладками, у меня есть кнопка на вкладке 4, где, когда я нажимаю на нее, я хочу вернуться на первую вкладку , Я пробовал TabControl.SelectedIndex = 0, но кажется, что он не работает, вы можете помочь?TabControl.SelectedIndex не работает для переключения управления вкладками

здесь XAML

 <TabControl x:Name="TabAdd" HorizontalAlignment="Left" Height="535" VerticalAlignment="Top" Width="645" BorderBrush="#FFE8E8E8" Padding="0" IsSynchronizedWithCurrentItem="True" IsTextSearchEnabled="True"> 
      <TabItem x:Name="TabAddFlat" Header="Flat View" TabIndex="0"><!--IsSelected="True"--> 
       <Grid Background="#FFFBFBFB" Margin="0"> 
        <Grid x:Name="GridAddFlat" HorizontalAlignment="Left" Height="466" VerticalAlignment="Top" Width="407" Margin="109,10,0,0"> 
         <Image HorizontalAlignment="Left" Height="466" VerticalAlignment="Top" Width="274" Source="Resources/F18.large - Copy.png" Margin="3,0,0,0"/> 
        </Grid> 
       </Grid> 
      </TabItem> 
      <TabItem x:Name="TabAddSide" Header="Side View" TabIndex="1"> 
       <TabItem.Background> 
        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> 
         <GradientStop Color="#FFF3F3F3" Offset="0"/> 
         <GradientStop Color="#FFEBEBEB" Offset="0.5"/> 
         <GradientStop Color="#FFDDDDDD" Offset="0.5"/> 
         <GradientStop Color="#FFFBFBFB" Offset="1"/> 
        </LinearGradientBrush> 
       </TabItem.Background> 
       <Grid Background="#FFFBFBFB"> 
        <Grid x:Name="GridAddSide" HorizontalAlignment="Left" Height="345" VerticalAlignment="Top" Width="444" Margin="119,49,0,0"> 
         <Image HorizontalAlignment="Left" Height="343" VerticalAlignment="Top" Width="394" Source="Resources/F1.large.png"/>       
        </Grid> 
       </Grid> 
      </TabItem> 
      <TabItem TabIndex="3" x:Name="TabAddInfo" Header="Customer Info" HorizontalAlignment="Left" Height="45" VerticalAlignment="Top" Width="184" Margin="0,0,-78,0"> 
       <TabItem.Background> 
        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> 
         <GradientStop Color="#FFF3F3F3" Offset="0"/> 
         <GradientStop Color="#FFEBEBEB" Offset="0.5"/> 
         <GradientStop Color="#FFDDDDDD" Offset="0.5"/> 
         <GradientStop Color="#FFE8E8E8" Offset="1"/> 
        </LinearGradientBrush> 
       </TabItem.Background> 
       <Grid Background="#FFFBFBFB"> 
        <Grid x:Name="GridAddInfo" HorizontalAlignment="Left" Height="466" VerticalAlignment="Top" Width="407" Margin="109,10,0,0">       
         <TextBox x:Name="iaddress" MaxHeight="288" Height="95" Width="288" Controls:TextboxHelper.ClearTextButton="True" Controls:TextboxHelper.Watermark="Address" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.IsSharedSizeScope="True" Padding="0" UseLayoutRounding="True" RenderTransformOrigin="0.5,0.5" Margin="27,246,92,125" AutoWordSelection="True" /> 

        </Grid> 
       </Grid> 
      </TabItem> 
      <TabItem TabIndex="3" x:Name="TabAddReview" Header="Review" HorizontalAlignment="Left" Height="45" VerticalAlignment="Top" Width="106" GotFocus="LoadAddReview"> 
       <TabItem.Background> 
        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> 
         <GradientStop Color="#FFF3F3F3" Offset="0"/> 
         <GradientStop Color="#FFEBEBEB" Offset="0.5"/> 
         <GradientStop Color="#FFDDDDDD" Offset="0.5"/> 
         <GradientStop Color="#FFFBFBFB" Offset="1"/> 
        </LinearGradientBrush> 
       </TabItem.Background> 
       <Grid Background="#FFFBFBFB"> 
        <Image HorizontalAlignment="Left" Height="32" Margin="15,15,0,0" VerticalAlignment="Top" Width="32" Source="Resources/save-64.png" MouseLeftButtonDown="SaveFormAll"/>      
        </Grid> 
       </Grid> 
      </TabItem> 
     </TabControl> 
    </Grid> 

и здесь C# код

private void SaveFormAll(object sender, MouseButtonEventArgs e) 
    { 
     TabAdd.SelectedIndex = 2; 
    } 
+1

У вас есть 2 вкладки с TabIndex = "3". Проверь это. – Blablablaster

+1

Я тоже это видел, но я запустил его код - он выбирает правильную вкладку, независимо от значения «TaxIndex». –

ответ

2

на изображение, которое вы используете в качестве кнопки, измените MouseLeftButtonDown = "SaveFormAll" в MouseLeftButtonUp = "SaveFormAll " и попробуй еще раз. Это должно сработать.

Проблема заключается в том, что ваш обработчик MouseLeftButtonDown запускается, но событие MouseLeftButtonUp сразу же следует за ним и возвращает фокус обратно на изображение, что означает, что последняя вкладка активна. Когда я изменил его на использование MouseLeftButtonUp, он сработал.

+0

Спасибо, это сработало! –