自定义控件,它的界面就是十多个按钮,每个按钮的样式可以自己定义。这里就不多讲,主要说一下后台逻辑。
一、定义两个委托
1、读取显示的字符 public EventCallBackGetShowText GetShowTextCallBack;
2、设置显示的字符 public EventCallBackSetShowText SetShowTextCallBack;
https://github.com/danyueming/KeyBord
二、在按钮的click事件中,分别调用这两个委托,用来实现字符的增加,删除功能
在MainWindow中使用该控件:
定义两个与委托类型相同的函数,并并将其赋值给该键盘控件即可,同时设置该控件的显示位置
<TextBox Margin="3"
Background="#FF258791"
BorderBrush="White"
Foreground="White"
Name="Value_Show"
FontWeight="Bold"
LostFocus="Show_LostFocus"
TextChanged="Show_TextChanged"
GotFocus="Show_GotFocus"
PreviewMouseLeftButtonDown="Value_Show_PreviewMouseLeftButtonDown"></TextBox>
</Grid>
private string Show_GetShowValue()
{
return _Show.Text;
}
private void Value_Show_SetShowValue(string inString)
{
_Show.Text = inString;
}
private void Show_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
KeyBoard mkeyBoard = new KeyBoard();
mkeyBoard.GetShowTextCallBack = Temperature1_Value_Show_GetShowValue;
mkeyBoard.SetShowTextCallBack = Temperature1_Value_Show_SetShowValue;
Point controlPoint = new Point(0, 0);
controlPoint = ((TextBox)sender).PointToScreen(controlPoint);
mkeyBoard.Top = controlPoint.Y + ((TextBox)sender).ActualHeight;
mkeyBoard.Left = controlPoint.X;
mkeyBoard.ShowDialog();
}