我在我的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屬性。
我該怎麼做。**
我設置「<文本框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