怎么实现下拉主菜单的效果

kagad 2010-02-05 03:46:35
应用程序的主菜单是基本的功能,但是在SilverLight中却没MENU控件,请问怎么实现下拉主菜单的效果?我是想完全用SL来实现,而不是用HTML+JS来实现这个菜单。
...全文
318 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruihuajian 2010-03-09
  • 打赏
  • 举报
回复
学习中!!!!!!!!
kagad 2010-02-22
  • 打赏
  • 举报
回复
年过完了,做过的人 来说说是怎么弄啊
Goldfire_001 2010-02-08
  • 打赏
  • 举报
回复
Code上吧,你把Xaml Code拉上来。
kagad 2010-02-08
  • 打赏
  • 举报
回复
Goldfire_001:GRID的第二行确实可以设成AUTO,但是第一行设定了的话(比如60)那么菜单项的内容如果高度大于60就会被截断,显示不全,也就是怎么能第一行的内容让它显示到第二行中去,因为不可能把GRID的第一行的高度设的和实际菜单项的内容的高度一样
Goldfire_001 2010-02-08
  • 打赏
  • 举报
回复
首先,用Combox,你可以修改Combox的Template,Hard Code里面的Content(笨办法)。
或者自己暴露一个接口,专门用来设置菜单标题项。

至于你说的第二个。你可以不用设那么死。设成Auto就好了么。干嘛非要80%的额定呢?
kagad 2010-02-08
  • 打赏
  • 举报
回复
用COMBOX的话,在点菜单标题的时候,发现菜单标题在下面的菜单项里面也有,这个和传统的菜单差别太大了。用按钮事件的话,我现在有个疑问就是,一般菜单都是在顶上一行显示的,下面是选择菜单后的具体内容。那么我可以总体上设置一个2行的GRID,第一行放菜单占20%的高度,第二行占80%的高度放显示的页面。具体的菜单内容我用我放到ListBox中,问题是:当ListBox中的菜单项列表高度大于GRID第一行的高度时,就显示不全,也就是说GRID的高度决定了它里面的LISTBOX能显示的最大高度,我怎么做能让LISTBOX穿越过GRID的行限制呢?
a6965921z 2010-02-08
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/ms752296.aspx 去看看吧
kagad 2010-02-08
  • 打赏
  • 举报
回复
一个简单的XAML:
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top">
<StackPanel Orientation="Vertical" MouseMove="Menu_MouseMove" MouseLeave="Menu_MouseLeave" Tag="menuOne" >
<Button Content="第一菜单" ></Button>
<Canvas Visibility="Collapsed" x:Name="menuOne" Grid.RowSpan="2">
<ListBox x:Name="lboxOne" MouseMove="Menu_MouseMove" SelectionChanged="lboxOne_SelectionChanged" >
<ListBoxItem Content="第一选项"></ListBoxItem>
<ListBoxItem Content="第二选项"></ListBoxItem>
<ListBoxItem Content="第三选项"></ListBoxItem>
</ListBox>
</Canvas>
</StackPanel>
</StackPanel>
<navigation:Frame x:Name="herfFrame" Grid.Row="1" Background="GhostWhite" ></navigation:Frame>
</Grid>
jv9 2010-02-06
  • 打赏
  • 举报
回复
下拉菜单有很多实现方法,可以使用cavas作为一个层,按钮事件激活后,可以显示该层,你可以设置菜单选项在这个层内。另外也可以使用combox,建立combox选项就可以了,自定义combox的itemTemplate。

http://silverlightchina.net/html/works/2010/0205/670.html

这个是一个专业的silverlight菜单控件,是开源的,对你会有帮助。
Goldfire_001 2010-02-05
  • 打赏
  • 举报
回复
能实现的方式很多,就是哪Combox也可以通过修改Template来做。

你也可以吧WPF的Menu的Template拿过来参考,设计自己的Menu。。
纷享刘晨 2010-02-05
  • 打赏
  • 举报
回复
使用Popup控件实现

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧