Курсор фокусировки мигает в WPF

#wpf #textbox #focus #visibility #expander

#wpf #текстовое поле #фокус #видимость #расширитель

Вопрос:

У меня есть текстовый блок, расширитель и текстовое поле…

они находятся внутри заголовка столбца listview.

Текстовый блок предназначен для имени столбца listview при нажатии расширителя…текстовое поле будет отображаться … и пользователь может открыть listview на основе этого столбца. По умолчанию текстовое поле свернуто.

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

С помощью приведенного ниже XAML я могу отобразить текстовое поле при нажатии расширителя и установить фокус (курсор) на мое текстовое поле. Но этот курсор не мигает. Я имею в виду, что мне нужно снова нажать на текстовое поле, чтобы что-то ввести

Пожалуйста, помогите мне выяснить, в чем проблема…Любая помощь будет оценена.

     <StackPanel>
     <DockPanel>
      <TextBlock DockPanel.Dock="Left" Text="ID"/>
        <Expander x:Name="IdExp" DockPanel.Dock="Right" IsExpanded="False" ExpandDirection="Down" >                                                         
                                                                         </Expander>                                                                
    </DockPanel>

    <TextBox x:Name="PropertyCCCIDSearch" 
      Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}}, 
                                                      Path=DataContext.SearchCCGId.Value,UpdateSourceTrigger=PropertyChanged}"
     Visibility="{Binding ElementName=IdExp, Path=IsExpanded, Converter={x:Static local:Converters.BoolToVisibility}}" >                   
    <TextBox.Style>

    <Style>
    <Style.Triggers>                                                                                <DataTrigger Binding="{Binding ElementName=IdExp, Path=IsExpanded}" Value="True">
         <Setter Property="FocusManager.FocusedElement" Value="{Binding      ElementName=PropertyCCCIDSearch}"/>                                                        </DataTrigger>
     </Style.Triggers>
   </Style>
  </TextBox.Style>
 </TextBox>                                                            
</StackPanel>
  

Комментарии:

1. Данный код работает нормально для меня….

Ответ №1:

Ваш код работает правильно, это то, что я пробовал

 <Window.Resources>
        <BooleanToVisibilityConverter x:Uid="BooleanToVisibilityConverter_1" x:Key="b2v" />
    </Window.Resources>
    <Grid>
        <StackPanel>
            <DockPanel>
                <TextBlock DockPanel.Dock="Left" Text="ID"/>
                <Expander x:Name="IdExp" DockPanel.Dock="Right" IsExpanded="False" ExpandDirection="Down" >
                </Expander>
            </DockPanel>
            <TextBox x:Name="PropertyCCCIDSearch" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}}, 
                                                      Path=DataContext.SearchCCGId.Value,UpdateSourceTrigger=PropertyChanged}"
                     Visibility="{Binding ElementName=IdExp, Path=IsExpanded,
                     Converter={StaticResource b2v}}" >
                <TextBox.Style>
                    <Style>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=IdExp, Path=IsExpanded}" Value="True">
                                <Setter Property="FocusManager.FocusedElement" Value="{Binding    ElementName=PropertyCCCIDSearch}"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBox.Style>
            </TextBox>
        </StackPanel>

    </Grid>
</Window>
  

Комментарии:

1. Какие изменения вы внесли, кроме сохранения converter в качестве ресурса?

2. У меня все работает нормально… Не знаю, что произошло на вашем компьютере