聚焦光标在WPF中闪烁

时间:2011-10-17 02:05:59

标签: wpf textbox focus visibility expander

我有一个文本块,扩展器和一个文本框......

这些都在listview列的标题内。

TextBlock用于列表视图列名,单击扩展器...将显示文本框...用户可以根据该列搜索列表视图。默认情况下,文本框已折叠。

我的要求是,当用户点击扩展器时,应该向用户显示文本框...并且焦点应该放在文本框上。

使用下面的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 :(得分:0)

你的代码工作正常这是我试过的

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