2011-08-16 64 views
0

我在我的Silverlight應用程序中使用NumericUpDown控件。使用Tab在Silverlight頁面中導航控件時遇到問題。如何設置TextBox內的NumericUpDown控件的TabIndex Silverlight

案例1:當我的控制焦點在NumericUpDown上,我使用了向下按鍵時,我的值在NumericUpDown控件中遞增和遞減。當按下Tab鍵焦點移至下控制誰的tabIndex是+1

案例2:當我點擊NumericUpDown控件,所以我NumericUpDownControl得到關注,因爲我點擊它,當我在它通過鍵盤,然後按回車值標籤ID不會移動到下一個控件。 (因爲它在第一種情況下移動)

我發現當我點擊NumericUpDown控件,然後按下案例2中的選項卡:在控件的按鍵事件中,我得到原始源文本框。

** private void Control_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.OriginalSource as Control != null 
      && e.Key == Key.Tab) 
     { 
      Int32 index = (e.OriginalSource as Control).TabIndex; 
      if (index == Int32.MaxValue) index = index1; //??// 
      if (Keyboard.Modifiers == ModifierKeys.None) 
      { 

      } 
      else if (Keyboard.Modifiers == ModifierKeys.Shift) 
      { 

      } 
     } 
    } 

**

在案例1:我NumericUpDown控件作爲原始來源 在案例2中:我得到了TextBox控件作爲原始來源

在那裏我有一組的TabIndex NumericUpDown控件,因爲我沒有得到TextBox的TabIndex屬性,我得到了上述問題。

那麼如何在NumericUpDown控件的TextBox上設置TabIndex。

控制模板

`

      <VisualStateGroup x:Name="ValidationStates"> 
           <VisualState x:Name="Valid"/> 
           <VisualState x:Name="InvalidUnfocused"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility"> 
              <DiscreteObjectKeyFrame KeyTime="0"> 
               <DiscreteObjectKeyFrame.Value> 
                <Visibility>Visible</Visibility> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="InvalidFocused"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility"> 
              <DiscreteObjectKeyFrame KeyTime="0"> 
               <DiscreteObjectKeyFrame.Value> 
                <Visibility>Visible</Visibility> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen"> 
              <DiscreteObjectKeyFrame KeyTime="0"> 
               <DiscreteObjectKeyFrame.Value> 
                <sys:Boolean>True</sys:Boolean> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 

         </VisualStateManager.VisualStateGroups> 
         <inputToolkit:ButtonSpinner x:Name="Spinner" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" MinWidth="35"> 
          <StackPanel Background="White" Orientation="Horizontal" HorizontalAlignment="Right" Width="Auto">         
           <TextBox x:Name="Text" Style="{StaticResource TextBoxStyle}" 
            BorderThickness="0" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" MinWidth="50" Width="Auto" AcceptsReturn="False" Text="{TemplateBinding Value}" TextAlignment="Left" TextWrapping="NoWrap"/> 
          </StackPanel> 
         </inputToolkit:ButtonSpinner> 
         <Border x:Name="DisabledVisualElement" IsHitTestVisible="false" Opacity="0" Background="#A5FFFFFF" CornerRadius="2.5,2.5,2.5,2.5"/> 
         <Border x:Name="FocusVisualElement" IsHitTestVisible="False" Opacity="0" BorderBrush="#FF45D6FA" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1,1,1,1"/> 
         <Border x:Name="ValidationErrorElement" Visibility="Collapsed" BorderBrush="#FFDB000C" BorderThickness="1" CornerRadius="1"> 
          <ToolTipService.ToolTip> 
           <ToolTip x:Name="validationTooltip" Height="Auto" Width="Auto" Template="{StaticResource ValidationToolTipTemplate}" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"> 
            <ToolTip.Triggers> 
             <EventTrigger RoutedEvent="Canvas.Loaded"> 
              <BeginStoryboard> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsHitTestVisible"> 
                 <DiscreteObjectKeyFrame KeyTime="0"> 
                  <DiscreteObjectKeyFrame.Value> 
                   <sys:Boolean>true</sys:Boolean> 
                  </DiscreteObjectKeyFrame.Value> 
                 </DiscreteObjectKeyFrame> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </BeginStoryboard> 
             </EventTrigger> 
            </ToolTip.Triggers> 
           </ToolTip> 
          </ToolTipService.ToolTip> 
          <Grid Height="12" HorizontalAlignment="Right" Margin="1,-4,-4,0" VerticalAlignment="Top" Width="12" Background="Transparent"> 
           <Path Fill="#FFDC000C" Margin="1,3,0,0" Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z"/> 
           <Path Fill="#ffffff" Margin="1,3,0,0" Data="M 0,0 L2,0 L 8,6 L8,8"/> 
          </Grid> 
         </Border> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style>` 

**我想從<inputToolkit:ButtonSpinner></inputToolkit:ButtonSpinner>文本式T設置文本框運行時的abIndex屬性。

我該怎麼做。**

+0

我設置「<文本框X:名稱= 」文本「 樣式= 」{StaticResource的TextBoxStyle}「 了borderThickness =」 0 「FontFamily =」{TemplateBinding FontFamily}「TabIndex =」{TemplateBinding TabIndex} FontSize =「{TemplateBinding FontSize}」FontStretch =「{TemplateBinding FontStretch}」FontWeight =「{TemplateBinding FontWeight}」Foreground = 「{TemplateBinding Foreground}」MinWidth =「50」Width =「Auto」AcceptsReturn =「False」Text =「{TemplateBinding Value}」TextAlignment =「Left」TextWrapping =「NoWrap」/>'我得到父屬性自定義模板控制。 – PramodChoudhari

回答

0
<TextBox x:Name="Text" Style="{StaticResource TextBoxStyle}" 
           BorderThickness="0" FontFamily="{TemplateBinding FontFamily}" TabIndex="{TemplateBinding TabIndex} FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" MinWidth="50" Width="Auto" AcceptsReturn="False" Text="{TemplateBinding Value}" TextAlignment="Left" TextWrapping="NoWrap"/> 

設置的TabIndex = 「{TemplateBinding的TabIndex}爲我工作

相關問題