日期:2014-05-17  浏览次数:20914 次

新手求教,如何实现不规则Textbox文本框
WPF界面制作时使用了不规则窗体,排版时文字输入区域只有一块 三角形 的地方可选,而调用的textbox是 正方形 的,用户输入文字时会 影响到其他界面 ,请问如何解决,谢谢。
textbox 界面 WPF

------解决方案--------------------
文本框没有办法变成不规则的,但是一个变通方法就是激活这个区域的时候,显示一个文本框(规则的),允许用户输入,当用户移开焦点的时候,把它隐藏,并且按照不规则的区域把文本画上去。
------解决方案--------------------
有才。

我觉得你应该看看TextBox的源代码,自己做一个新的。
------解决方案--------------------
引用:
有才。

我觉得你应该看看TextBox的源代码,自己做一个新的。


TextBox的核心实现是在user32.dll中,WinForms只是封装了下。而Windows不提供源代码。
------解决方案--------------------
引用:
Quote: 引用:

文本框没有办法变成不规则的,但是一个变通方法就是激活这个区域的时候,显示一个文本框(规则的),允许用户输入,当用户移开焦点的时候,把它隐藏,并且按照不规则的区域把文本画上去。


那能不能把文本框隐藏,只显示输入光标,输入文字后采取到边框线就换行的方式?
其他控件能实现这类效果吗?


文本框隐藏,只显示输入光标,你可以把文本框的背景色设置的和后面的一样,并且不显示边框达到你要的外观。
至于边框线就换行,这个需要自己去计算文本的长度和坐标,幸好有一个graphics.measurestring函数可以返回一个字符串所占用的集合大小,但是还是需要你写很多代码去计算位置和坐标,以及自己去换行。