我有一个扩展器......和一个文本框。默认情况下隐藏文本框。当用户点击扩展器时,我显示的是文本框。这工作正常。
我需要的是,当用户点击扩展器时...我需要在文本框中设置焦点。
请帮我这样做......我尝试使用以下代码......但似乎“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>
答案 0 :(得分: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>
答案 1 :(得分:0)
您可以处理扩展器的Expanded事件,并将焦点设置在处理程序方法中。
private void OnExpanderExpanded(object sender, RoutedEventArgs args)
{
txtTest.Focus();
}
答案 2 :(得分:0)
IsFocused是ReadOnly属性。你可能想看看这些 -