2012-11-02 34 views
1

我正在創建一個顯示十六進制值的控件(例如FFAA-CA10-56D7)。現在這個值由圖像組成。控件的值是這樣的:在文本框中使用圖像

enter image description here

對於只讀控制我沒有問題。我可以根據該值放置適當的圖像。因此,如果必須將該值設置爲FF,例如我將遍歷字符串中的字符,然後放置相應的圖像。

現在的問題是與讀寫控制。如果我可以使用相同的字體將會很好。現在我添加圖像作爲用戶鍵入值。 但它不友好。如果用戶想要通過拖動鼠標來選擇3個字符怎麼辦?或者我怎樣才能執行選擇多個字符的Shift +箭頭鍵組合。

因此,在短期我會想保持相同的外觀和感覺的控制,我不希望替換圖像的文本。你們推薦什麼方法,以保持相同的外觀和感覺。

事情我已經嘗試:

我試圖從那些PNG的創建我的自定義字體。但是,如果找不到能夠讓我從png圖像創建字體的正確程序,那就一直沒有成功。

回答

2

我會通過使用帶有水平StackPanel的自定義ListBox作爲它的ItemPanelTemplate來實現這一點,並且它的ItemsSource將是一個char列表。那麼你可以提供一個適當的DataTemplate包含相應的圖像(依賴於char值,也許使用DataTriggers)。 ListBox具有Multiselection,所以在模仿TextBox的Text Selection行爲時應該沒有問題,並且通過將List的char作爲ItemsSouce也可以允許複製(通過在ListBox中執行EditCommands.Copy自己的實現)。

編輯:這是你肯定要實現自己的情況之一Custom Control

+0

我喜歡你的想法謝謝 –

相關問題