1

Silverlight 4のTextBoxコントロールにメニューバーを追加したいと思います(新しい再利用可能なコントロールを作成します)。メニューバーはいくつかの画像ボタンで構成されます。通常は非表示のままで、ユーザーがマウスカーソルをTextBox領域に置いたときにのみ表示されるという考え方です。複数行のテキストボックスで使用する場合、メニューバー全体をその中に収めることができます。これは簡単なはずです。(私は願います。 :-))

しかし、TextBoxが単一行モードの場合の状況を解決するにはどうすればよいですか?メニューバーをTextBoxの上に置きたいのですが。しかし、私にはそれを行う方法の手がかりがありません。誰かが助けることができますか?フォーム内の他のすべてのコントロールをその位置にとどまらせ、テキストボックスの上にメニューバーを追加するだけにする必要があります。(したがって、メニューバーはテキストボックスを非表示にしません。代わりに、テキストボックスのすぐ上にある他のコントロールを非表示にします。)グリッド、StackPanel、Canvasなど、フォームのすべての配置で機能するはずです。実際には、従来の右クリックコンテキストメニューですが、モーダルではありません。(右クリックのコンテキストメニューはモーダルです。つまり、表示されている間は他のコントロールを使用できず、他の場所をクリックすると自動的に非表示になります。ユーザーがテキストボックスまたはメニューバーの上にマウスカーソルを置いている限り、メニューバーは表示されたままにします。 。)

例:テキストボックスの座標は、top = 100、left = 20、bottom = 115、right=120です。したがって、メニューバーの座標はbottom = 100、left = 20である必要があり、rightとtopはメニューバーのサイズに基づいています。

1つのページで多数のテキストボックスを使用する場合は、各テキストボックスに独自のメニューバーを設定する必要があります。(もちろん。)

4

2 に答える 2

0

TextBoxとメニュー バーのビジュアルを持つ独自のコントロール (カスタム コントロールまたは UserControl のうち、どちらでも機能するもの) を作成できます。

が 1 行の場合、マウスがその上にあるときは常に のすぐ上にTextBoxメニュー バーを表示できます。PopupTextBox

TextBoxが複数行の場合、必要なものを理解している場合は、 StackPanelorなどを使用して、通常のようにレイアウトを行うだけです。Grid

于 2011-02-05T19:25:07.960 に答える
0

このメニューを使用する場合、コーディングは不要です。

http://sl4popupmenu.codeplex.com

この動作を実現するには、IsPinned プロパティを true に設定する必要があります。

于 2011-03-07T10:10:29.890 に答える