WPF 设置鼠标焦点在TextBox中就那么难吗?该怎么解决
WPF 设置鼠标焦点在TextBox中就那么难吗?
XAML
<StackPanel >
<Expander Name="expanders" Header="我要选择中你,然后直接在键盘输入字">
<WrapPanel Orientation="Vertical">
<Button Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
</WrapPanel>
</Expander>
</StackPanel>
Button事件后台创建Textbox并且设置设置
SelectAll、Focus
------解决方案--------------------
我理解中的重命名,应该是这样做:
将TextBlock与TextBox都放在同一个位置,可以用Grid控件作为容器,然后作为Expander的Header。
一般时候TextBox是隐藏的,当用户的某个操作(触发了某个事件)发生时,将TextBlock隐藏,然后将TextBox显示出来,TextBlock与TextBox两者的Text时bingding在一起的。
------解决方案--------------------
TextBox 要加载完操作才可
XAML
<StackPanel >
<Expander Name="expanders" Header="我要选择中你,然后直接在键盘输入字">
<WrapPanel Orientation="Vertical">
<Button Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
</WrapPanel>
</Expander>
</StackPanel>
Button事件后台创建Textbox并且设置设置
SelectAll、Focus
- C# code
private void button1_Click(object sender, RoutedEventArgs e) { TextBox txtbox = new TextBox() { Width = 250, Height = 23 }; txtbox.Text = expanders.Header.ToString(); //txtbox.SelectAll(); //txtbox.Focus(); expanders.Header = txtbox; }
------解决方案--------------------
我理解中的重命名,应该是这样做:
将TextBlock与TextBox都放在同一个位置,可以用Grid控件作为容器,然后作为Expander的Header。
一般时候TextBox是隐藏的,当用户的某个操作(触发了某个事件)发生时,将TextBlock隐藏,然后将TextBox显示出来,TextBlock与TextBox两者的Text时bingding在一起的。
------解决方案--------------------
TextBox 要加载完操作才可
- C# code
TextBox txtbox = null; private void button1_Click(object sender, RoutedEventArgs e) { txtbox = new TextBox() { Width = 250, Height = 23 }; txtbox.Text = expanders.Header.ToString(); expanders.Header = txtbox; txtbox.Loaded += new RoutedEventHandler(txtbox_Loaded); } void txtbox_Loaded(object sender, RoutedEventArgs e) { txtbox.SelectAll(); txtbox.Focus(); }