wp7 给TextBox设置圆角边框
这只是一个很简单小技巧,大牛们就不要再来喷小弟。。
我就喜欢将一件很简单事情做到很完美。。。
首先准备好一张背景图
在最外层grid 加上这段代码:代码意思给页面加上背景图
<Grid.Background>
<ImageBrush ImageSource="/Images/bg.png"></ImageBrush>
</Grid.Background>
下面是关键部分
主要用到一个Border 跟TextBox控件
Border作用就是加个边框效果
<Border BorderThickness="1" BorderBrush="Gray" Height="72" Width="300" CornerRadius="10">
<TextBox Text="请输入密码"></TextBox>
</Border>
还有很多细节问题处理,如下面红色地方 跟背景不匹配(控件默认是白色)
接下来我用取色器取出周边颜色 ,给文本框加上一个属性Background="#f6fbff"
<Border BorderThickness="1" BorderBrush="Gray" Height="72" Width="300" CornerRadius="10">
<TextBox Text="请输入密码" Background="#f6fbff"></TextBox>
</Border>
细心点就发现TextBox还多出边框是白色,下面我给文本设置上周围背景色
<Border BorderThickness="1" BorderBrush="Gray" Height="72" Width="300" CornerRadius="10">
<TextBox Text="请输入密码" Background="#f6fbff" BorderBrush="#f6fbff"></TextBox>
</Border>
似乎很完美解决了...
但是这不是我想要的,假如我页面有一百个这样文本框,复制一百次这样子代码??
用户控件可以减少我部分代码量
用户控件代码:
public partial class MyTextBox : UserControl { //文本框值 private string _Text = ""; public string MyText { get { return _Text; } set { _Text = value; } } //高度 private double _Height = 72; public double MyHeight { get { return _Height; } set { _Height = value; } } //宽度 private double _Width = 300; public double MyWidth { get { return _Width; } set { _Width = value; } } private string _Background = "#f6fbff"; public string MyBackground { get { return _Background; } set { _Background = value; } } public MyTextBox() { InitializeComponent(); this.Loaded += new RoutedEventHandler(MyTextBox_Loaded); } void MyTextBox_Loaded(object sender, RoutedEventArgs e) { txtBox.Text = MyText; border.Height = MyHeight; border.Width = MyWidth; string bg = this.MyBackground.Replace("#", ""); byte r = Convert.ToByte(bg.Substring(0, 2)); byte g = Convert.ToByte(bg.Substring(2, 2)); byte b = Convert.ToByte(bg.Substring(4, 2)); var color = new SolidColorBrush(Color.FromArgb(255, r, g, b)); txtBox.Background = color; txtBox.BorderBrush = color; } }
这里我只写三个属性,做了一些简单处理。。。。
之后在页面拖这个控件,设置几个属性就可以使用,详细请查看源代码
<my:MyTextBox HorizontalAlignment="Left" MyBackground="#222222" Margin="34,173,0,0" x:Name="myTextBox1" VerticalAlignment="Top" Tap="myTextBox1_Tap" MyHeight="70" MyWidth="400" MyText="12221" />
其实里面很多东西都没有考虑进去,等我完成这个wp7小作品,我会逐步完善这个控件
同样项目源代码我也会共享出来。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架