1

我有一个扩展器......和一个文本框。文本框默认隐藏。当用户单击扩展器时,我正在显示文本框。这工作正常。

我需要的是,当用户单击扩展器时...我需要在文本框中设置焦点。

请帮我这样做...我尝试使用以下代码...但似乎“IsFocused”是只读属性。

任何帮助,将不胜感激 !

<StackPanel>
  <DockPanel>
    <TextBlock DockPanel.Dock="Left"  Text="ID"/>
      <Expander x:Name="ID" DockPanel.Dock="Right" IsExpanded="False" ExpandDirection="Down">                                                    
      </Expander>
  </DockPanel>
  <TextBox Text="{Binding Path=SearchCCCId.Value,UpdateSourceTrigger=PropertyChanged}" 
     Visibility="{Binding ElementName=ID,Path=IsExpanded,Converter={x:Static local:Converters.BoolToVisibility}}"  Width="70" >
   <TextBox.Style>
     <Style>
        <Style.Triggers>
           <DataTrigger Binding="{Binding ElementName=ID, Path=IsEpanded}" Value="True" >
              <Setter Property="IsFocused" Value="True" />
           </DataTrigger>
         </Style.Triggers>
     </Style>
    </TextBox.Style>
   </TextBox>
</StackPanel>
4

3 回答 3

1

在您的帮助下,我能够找到答案...

<TextBox.Style>
    <Style>
        <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=ID, Path=IsExpanded}" Value="True">
                <Setter Property="FocusManager.FocusedElement" 
                        Value="{Binding ElementName=PropertyIDSearch}"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>
于 2011-10-15T14:48:52.837 回答
0

您可以处理Expander 的Expanded事件并在处理程序方法中设置焦点。

private void OnExpanderExpanded(object sender, RoutedEventArgs args)
{
    txtTest.Focus();
}
于 2011-10-15T05:28:25.257 回答
0

IsFocused 是 ReadOnly 属性。你可能想看看这些——

如何使用 MVVM 将焦点设置到文本框?

WPF - 单击按钮时设置焦点 - 没有代码

于 2011-10-15T05:30:28.493 回答