WPF设置控件获得焦点FocusManager

 

简单用法如下:

    在父类容器中通过附加属性FocusManager.FocusedElement来绑定需要强制获得焦点的控件,用法如下:

    <Grid FocusManager.FocusedElement="{Binding ElementName=btn}">
        <Button x:Name="btn" Content="1234"/>

    </Grid>

需要注意的是:当控件使用Style或者Template重写了控件的结构时,这样设置可能会无效,此时需要进入到Template中去设置

     可以查看例子:

 1 <Window x:Class="FocusManagerDemo.MainWindow"
 2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4         Title="MainWindow" Height="350" Width="525">
 5     <Grid>
 6         <!--需要测试外层Button时,可以去掉注释,同时注意,同一时刻内只有一个控件能获得焦点<Grid FocusManager.FocusedElement="{Binding ElementName=btn}">-->
 7             <Button x:Name="btn" Content="1234"/>
 8         <Grid>
 9             <TextBox x:Name="txt" Text="abc" Margin="106,73,97,145">
10                 <TextBox.Style>
11                     <Style TargetType="TextBox">
12                         <Setter Property="Template">
13                             <Setter.Value>
14                                 <ControlTemplate TargetType="TextBox">
15                                     <Grid FocusManager.FocusedElement="{Binding ElementName=btn123}">
16                                         <Button x:Name="btn123" Content="123" Margin="10"/>
17                                     </Grid>
18                                 </ControlTemplate>
19                             </Setter.Value>
20                         </Setter>
21                     </Style>
22                 </TextBox.Style>
23             </TextBox>
24         </Grid>
25     </Grid>
26 </Window>
View Code

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值