如何创建Control
来输入电子邮件地址,类似于在stackoverflow
上捕获广告代码的方式?
我正在使用C#和Xaml。
答案 0 :(得分:0)
您将需要:
TextBox(显示您可以输入的输入区域)
弹出窗口(显示像StackOveflow一样的TextBox下面的建议)
ItemsControl(它进入Popup,所以你可以只收集项目并显示它们,注意ItemsPanel应该是GridView)
然后您将需要自定义Button,一旦添加了标记,它将叠加在TextBox的顶部。您需要计算按钮的宽度(宽度)并用空格填充TextBox,以进一步推进光标。
您还需要控制正在按下的键。
答案 1 :(得分:0)
您所追求的效果可能是您识别完整的电子邮件地址,并以自定义方式呈现它们。我会通过从文本框中删除已完成的地址,并将它们包装在蒙皮标签(或者可能是带有删除按钮的自定义控件)中来完成此操作。
最直接的方法是将文本框实现为带边框的DockPanel
,表明它是一个文本框。在DockPanel
的左侧,您有一个StackPanel
,您可以在其中从左到右堆叠已完成的地址控件。然后添加一个包含DockStyle=Fill
的文本框,以填充DockPanel
的剩余部分。检测到输入的电子邮件地址后,您将从文本框中删除字符,并将匹配的控件添加到StackPanel
。
可能有一种方法可以更改文本框内容而不会失去焦点,否则您需要通过代码修复此问题。
祝你好运!