WPF项目学习.二

   记录在学习与制作WPF过程中遇到的解决方案。

   焦点的控制,键盘事件触发,输入框的数字限制,异步处理,隐藏状态可用状态,自定义属性等等...

 

二、配置

系统环境:win10

开发工具:Visual Studio 2017

开发语言:C#.WPF (MVVM框架)

 

三、自问自答

  1.焦点的控制;

  背景:

  焦点的使用一般用于输入框,切换业务功能时,需要焦点定位在指定输入框位置,便于用户操作;使用MVVM框架开发后,对于前端控件的焦点控制不便调用,控件绑定的都是偏向于文本内容和事件,不像windowsFrom那般直接调用控件的焦点属性;

  解决方式:

1)自定义属性;

  这种方法我不贴代码了,第二次重新编辑该文章时再补充关于自定义属性的调用说明;

  

2)前端布局所需焦点,后端遍历;

  在Grid的Style样式里面设置好需要布置焦点的触发器;

  后期每次更改焦点前,都把所有焦点触发器设置为false,然后在更改指定的焦点为true;

2.1) 前端xaml代码

WPF项目学习.二

<Grid> <Grid.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding TxtAFocus}" Value="True"> <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=TxtA}"/> </DataTrigger> <DataTrigger Binding="{Binding TxtBFocus}" Value="True"> <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=TxtB}"/> </DataTrigger> <DataTrigger Binding="{Binding TxtCFocus}" Value="True"> <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=TxtC}"/> </DataTrigger> </Style.Triggers> </Style> </Grid.Style> <StackPanel Margin="10"> <StackPanel Orientation="Horizontal"> <TextBox x:Name="TxtA" Text="" Width="100" Height="30" Tag="输入框A..." Style="{StaticResource TxbTrigger}"/> <TextBox x:Name="TxtB" Text="" Width="100" Height="30" Margin="5" Tag="输入框B..." Style="{StaticResource TxbTrigger}"/> <TextBox x:Name="TxtC" Text="" Width="100" Height="30" Tag="输入框C..." Style="{StaticResource TxbTrigger}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <Button Content="焦点A" Width="80" Height="28" Command="{Binding BtnA}" Template="{StaticResource DefaultButton}" Foreground="White"/> <Button Content="焦点B" Width="80" Height="28" Command="{Binding BtnB}" Margin="20" Template="{StaticResource DefaultButton}" Foreground="White" /> <Button Content="焦点C" Width="80" Height="28" Command="{Binding BtnC}" Template="{StaticResource DefaultButton}" Foreground="White" /> </StackPanel> </StackPanel> </Grid>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgfwd.html