1

我正在创建一个显示十六进制值的控件(例如 FFAA-CA10-56D7)。现在该值由图像组成。控件的值如下所示:

在此处输入图像描述

对于只读控件,我没有问题。我能够根据值放置适当的图像。因此,如果我必须将值设置FF为例如,我将遍历字符串上的字符,然后放置相应的图像。

现在问题出在读写控件上。如果我可以使用相同的字体,那就太好了。现在我在用户输入值时附加图像。但它并不友好。如果用户想通过拖动鼠标选择 3 个字符怎么办?或者我如何执行将选择多个字符的 shift+箭头组合键。

所以简而言之,我希望保持控件的外观和感觉,并且我不想替换文本框的图像。你们推荐什么方法,以便我可以保持相同的外观和感觉。

我尝试过的事情:

我试图从那些 png 中创建我的自定义字体。但是没有成功找到合适的程序,使我能够从 png 图像创建字体。

4

1 回答 1

2

我会通过使用一个自定义 ListBox 来做到这一点,其中一个水平 StackPanel 作为它的 ItemPanelTemplate,它的 ItemsSource 将是一个 char 列表。那么您可以提供一个包含相应图像的适当 DataTemplate(取决于 char 值,可能使用 DataTriggers)。ListBox 具有多选功能,因此您在模仿 TextBox 的文本选择行为时应该没有问题,并且通过将 char 列表作为 ItemsSouce,您还可以允许复制(通过在 ListBox 中执行您自己的 EditCommands.Copy 实现。

编辑:这是您肯定要实现自己的自定义控件的情况之一

于 2012-11-02T03:41:21.753 回答