1

16 進数値を表示するコントロールを作成しています (たとえば、FFAA-CA10-56D7)。現在、値は画像で構成されています。コントロールの値は次のようになります。

ここに画像の説明を入力

読み取り専用コントロールの場合、問題はありません。値に応じて適切な画像を配置できます。FFたとえば、値を設定する必要がある場合は、文字列の文字を反復処理してから、対応する画像を配置します。

問題は読み書き制御にあります。同じフォントを使えばいいのに。現在、ユーザーが値を入力するときに画像を追加します。しかし、それは友好的ではありません。ユーザーがマウスをドラッグして 3 文字を選択したい場合はどうすればよいでしょうか?. または、複数の文字を選択するシフト+矢印キーの組み合わせをどのように実行できますか?

要するに、コントロールのルック アンド フィールを同じままにして、テキスト ボックスの画像を置き換えたくありません。同じルックアンドフィールを維持できるように、どのようなアプローチをお勧めしますか?

私が試したこと:

それらのpngからカスタムフォントを作成しようとしました。しかし、png画像からフォントを作成できる適切なプログラムを見つけることに成功していません.

4

1 に答える 1

2

これを行うには、ItemPanelTemplateとしてHorizo​​ntal StackPanelを使用するカスタムListBoxを使用し、そのItemsSourceはcharのリストになります。次に、対応する画像を含む適切なDataTemplateを提供できます(char値に応じて、おそらくDataTriggersを使用します)。ListBoxには複数選択があるため、TextBoxのテキスト選択動作を模倣することに問題はありません。また、ItemsSouceとしてcharのリストを使用することで、コピーを許可することもできます(ListBoxでEditCommands.Copyを独自に実装することにより)。

編集:これは、独自のカスタムコントロールを確実に実装したい場合の1つです。

于 2012-11-02T03:41:21.753 に答える