Я хотел бы узнать, не упустил ли я что-то в своем коде XAML, связанном с табуляцией. В моем случае мне нужно дважды щелкнуть, чтобы перейти к следующему элементу управления в порядке табуляции. Было бы здорово узнать, как правильно применять табуляцию в Silverlight 4. Ниже приведен код, который я использую для табуляции. Заранее спасибо!

<StackPanel x:Name="sp" Grid.Column="0" >
                <TextBlock x:Name="txtO" Style="{StaticResource AVV_TitleStyleBlue}" Text="Text" />
                <HyperlinkButton x:Name="hl1" Style="{StaticResource AVV_HyperlinkButtonStyle}" Content="test 1" IsTabStop="True" TabIndex="11" />
                <HyperlinkButton x:Name="hl2" Style="{StaticResource AVV_HyperlinkButtonStyle}" Content="test 2" IsTabStop="True" TabIndex="12"/>
                <HyperlinkButton x:Name="hl3" Style="{StaticResource AVV_HyperlinkButtonStyle}" Content="test 3" IsTabStop="True" TabIndex="13" />
                <HyperlinkButton x:Name="hl4" Style="{StaticResource AVV_HyperlinkButtonStyle}" Content="test 4" IsTabStop="True" TabIndex="14" />
            </StackPanel>
0
vladc77 29 Мар 2011 в 02:52
Не могли бы вы уточнить вопрос (что происходит и что вам нужно сделать)? При тестировании кода без стилей табуляция работает нормально.
 – 
foson
29 Мар 2011 в 06:27
Наверное что-то в стиле берет фокус
 – 
Denis
29 Мар 2011 в 10:49
Проблема в том, что мне нужно дважды щелкнуть, чтобы выбрать следующий элемент в порядке табуляции. Спасибо, что посмотрели.
 – 
vladc77
29 Мар 2011 в 17:03
Проблема сохраняется, даже если я удаляю стили.
 – 
vladc77
29 Мар 2011 в 17:03

1 ответ

У вас может возникнуть проблема, когда вспомогательный элемент управления также получает вкладку, я думаю, что так как вам нужно дважды вкладку. На первой вкладке вы, скорее всего, перейдете к скрытому элементу управления. Вторая вкладка приведет вас к нужному элементу управления. Чтобы исправить это, вам нужно выяснить, на какой элемент управления переходит фокус, когда вы нажимаете Tab. Это можно сделать с помощью метода Focus Manager get Focused Component; вы поместите это в место сразу после того, как нажмете вкладку, вам может потребоваться небольшая задержка, прежде чем вы получите контроль. Затем вы устанавливаете точку останова в VS и получаете информацию об этом элементе управления. После обнаружения вы устанавливаете для свойства IsTabStop значение false. Если вы используете сторонний элемент управления, вам нужно будет изменить его шаблон, возможно, используя смесь выражений.

0
nick 3 Дек 2013 в 03:23