Я использую элемент управления NumericUpDown в моем приложении Silverlight.У меня проблема при использовании вкладки для навигации по элементам управления на странице Silverlight.
Случай 1: Когда мой элемент управления фокусируется на NumericUpDown, и я использую клавишу вверх, мои значения увеличиваются и уменьшаются в элементе управления NumericUpDown.и когда нажатие фокуса вкладки перемещается к следующему элементу управления, чей tabindex равен +1
Случай 2: Когда я нажимаю на элемент управления NumericUpDown, поэтому мой NumericUpDownControl становится сфокусированным, так как я нажимаю на него, когда я ввожу значениев ней через клавиатуру и нажатие вкладки id не переходят к следующему элементу управления.(Как он перемещается в первом случае)
Я обнаружил, что когда я нажимаю на элемент управления NumericUpDown, а затем нажимаю вкладку в случае 2: в событии управления ключом вниз я получаю Исходный источник как TextBox.
** 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, и так как я не получил свойство TabIndex TextBox, я получаю вышеуказанную проблему.
Так как мне установить TabIndex для TextBox элемента управления NumericUpDown. ??
Шаблон управления
`
<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>`
** Я хочу установить TextBox из <inputToolkit:ButtonSpinner></inputToolkit:ButtonSpinner>
Свойство Text TabIndex во время выполнения.
Как мне это сделать .?**