1

我想将菜单栏添加到 Silverlight 4 中的 TextBox 控件。(我将创建一个新的可重用控件。)菜单栏将包含几个图像按钮。这个想法是它通常会保持隐藏状态,并且只有当用户将他/她的鼠标光标放在 TextBox 区域时才会显示。如果在多行文本框中使用,整个菜单栏可以放入其中,这应该很容易。(我希望。 :-))

但是当TextBox处于单行模式时如何解决呢?我想将菜单栏放在文本框上方。但我不知道该怎么做。有人可以帮忙吗?我需要让表单中的所有其他控件保持在它们的位置,并且只在我的文本框上方添加我的菜单栏。(所以菜单栏不会隐藏文本框。相反,它会隐藏文本框正上方的其他控件。)它应该适用于所有形式的排列,如 Grid、StackPanel、Canvas 等。事实上它类似于经典的右键单击上下文菜单,但不是模态的。(右键单击上下文菜单是模态的,即当它显示时您不能使用其他控件,并且当您单击其他任何位置时它会自动隐藏。我希望我的菜单栏保持可见,只要用户将鼠标光标放在文本框或菜单栏上.)

示例:文本框的坐标为 top=100,left=20,bottom=115,right=120。所以我的菜单栏的坐标应该是底部= 100,左侧= 20,右侧和顶部是基于菜单栏的大小。

如果将在一个页面上使用多个文本框,则每个文本框都应该有自己的菜单栏。(当然。)

4

2 回答 2

0

您可以创建自己的控件(自定义控件或 UserControl,无论您喜欢哪个都可以),它具有TextBox, 和菜单栏的视觉效果。

如果TextBox是单行的,您可以在鼠标悬停在其Popup上方时显示菜单栏。TextBox

如果它TextBox是多行的,如果我理解你想要什么,你只需使用StackPanelor或其他任何东西来像平常一样进行布局。Grid

于 2011-02-05T19:25:07.960 回答
0

如果您使用此菜单,则无需编码:

http://sl4popupmenu.codeplex.com

要实现此行为,您需要将其 IsPinned 属性设置为 true。

于 2011-03-07T10:10:29.890 回答