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

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

0 голосов
/ 17 октября 2011

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

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

TextBlock - для имени столбца списка просмотра, по щелчку расширения..textbox будет отображаться ... и пользователь может начать просмотр списка на основе этого столбца.По умолчанию текстовое поле свернуто.

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

С помощьюниже 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 Ответ

0 голосов
/ 17 октября 2011

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

<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>
...