




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第WPF实现自带触控键盘的文本框项目有个新需求,当点击或触碰TextBox时,基于TextBox的相对位置,弹出一个自定义的Keyboard,如下图所示:
二KeyboardControl
先实现一个自定义的KeyboardControl,它继承自Window。
Xaml代码如下:
Windowx:xmlns="/winfx/2006/xaml/presentation"
xmlns:x="/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"AllowsTransparency="True"WindowResizeMode="NoResize"Background="Transparent"Height="290"Width="668"
FrameworkElement.Resources
ResourceDictionary
StyleTargetType="{x:TypeButton}"x:Key="btnNum"
SetterProperty="Width"Value="50"/
SetterProperty="Height"Value="50"/
SetterProperty="Margin"Value="0055"/
SetterProperty="HorizontalContentAlignment"Value="Center"/
SetterProperty="VerticalContentAlignment"Value="Center"/
SetterProperty="Cursor"Value="Hand"/
SetterProperty="Template"
Setter.Value
ControlTemplateTargetType="{x:TypeButton}"
BorderName="border"BorderBrush="#FF474747"BorderThickness="1"CornerRadius="6"
Border.Background
LinearGradientBrushEndPoint="0.5,1"StartPoint="0.5,0"
GradientStopColor="#FFCCCCCC"/
GradientStopColor="WhiteSmoke"Offset="0.5"/
GradientStopColor="#FFCCCCCC"Offset="1"/
/LinearGradientBrush
/Border.Background
ContentPresenterHorizontalAlignment="Center"VerticalAlignment="Center"
TextElement.Foreground="#333333"TextElement.FontSize="18"/
/Border
/ControlTemplate
/Setter.Value
/Setter
/Style
StyleTargetType="{x:TypeButton}"x:Key="btnFunc"
SetterProperty="HorizontalContentAlignment"Value="Center"/
SetterProperty="VerticalContentAlignment"Value="Center"/
SetterProperty="Width"Value="50"/
SetterProperty="Height"Value="50"/
SetterProperty="Margin"Value="0055"/
SetterProperty="Foreground"Value="#333333"/
SetterProperty="Cursor"Value="Hand"/
SetterProperty="Template"
Setter.Value
ControlTemplateTargetType="{x:TypeButton}"
Border
Name="border"
BorderBrush="#FF565656"
BorderThickness="1"
CornerRadius="6"Background="Orange"
ContentPresenterHorizontalAlignment="Center"VerticalAlignment="Center"
TextElement.Foreground="White"TextElement.FontSize="18"/
/Border
/ControlTemplate
/Setter.Value
/Setter
/Style
local:CapsConverterx:Key="CapsConverter"/
/ResourceDictionary
/FrameworkElement.Resources
BorderBackground="Gray"CornerRadius="6"BorderThickness="1"BorderBrush="#333333"
StackPanelMargin="51055"
Grid
TextBoxName="tbValue"FontSize="28"Height="40"
Background="Transparent"BorderBrush="Silver"BorderThickness="1"
Foreground="White"HorizontalContentAlignment="Right"
SelectionChanged="tbValue_TextChanged"
TextChanged="tbValue_TextChanged"/
/Grid
WrapPanelOrientation="Vertical"
WrapPanelMargin="01000"
ButtonContent="1"Click="Button_Click"/
ButtonContent="2"Click="Button_Click"/
ButtonContent="3"Click="Button_Click"/
ButtonContent="4"Click="Button_Click"/
ButtonContent="5"Click="Button_Click"/
ButtonContent="6"Click="Button_Click"/
ButtonContent="7"Click="Button_Click"/
ButtonContent="8"Click="Button_Click"/
ButtonContent="9"Click="Button_Click"/
ButtonContent="0"Click="Button_Click"/
ButtonContent="-"Click="Button_Click"/
ButtonContent="Del"Click="DELButton_Click"Margin="0005"/
/WrapPanel
WrapPanelMargin="25000"
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=q}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=w}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=e}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=r}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=t}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=y}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=u}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=i}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=o}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=p}"
Click="Button_Click"/
ButtonContent="Clear"Click="ClearButton_Click"/
/WrapPanel
WrapPanelMargin="45000"
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=a}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=s}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=d}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=f}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=g}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=h}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=j}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=k}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=l}"
Click="Button_Click"/
ButtonContent="."Click="Button_Click"/
/WrapPanel
WrapPanelMargin="70000"
ButtonContent="A/a"Click="CapsButton_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=z}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=x}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=c}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=v}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=b}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:KeyboardControl}},Converter={StaticResourceCapsConverter},ConverterParameter=n}"
Click="Button_Click"/
ButtonContent="{BindingPath=Caps,RelativeSource={RelativeSourceAncestorType={x:Typelocal:Keyboar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加盟终止合同协议书范本
- 餐饮加盟合作合同协议书
- 煤矿皮带维修合同协议书
- 被迫兼职劳动合同协议书
- 2025中文商务合同的结构格式概述
- 合伙投资开厂合同协议书
- 厨房分包合同协议书
- 2025广告发布委托合同范本
- 赔偿墙布合同协议书模板
- 游戏交易买卖合同协议书
- 江西省房屋市政工程专职安全生产管理人员安全日志
- 英语四级历年高频词汇(带音标)
- 无机化学说课
- 2022-2023学年天津市河西区部编版三年级下册期末考试语文试卷
- 检验科工作环境清洁、消毒记录表
- 吊装施工记录
- 国开《Windows网络操作系统管理》形考任务4-配置故障转移群集服务实训
- 神奇的塑料袋-脑洞大开的运动 教案
- 风力发电居间合作协议书范本
- 基于单片机的五岔路口交通灯方案设计
- 《铸造用增碳剂》
评论
0/150
提交评论