请问为啥运行结果弹不出菜单内容

angeldgz 2014-05-30 04:01:25

<Window x:Class="BdmsPlatform.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Name="frmMainWindow" Height="600" Width="800">
<Grid Name="grdMain">
<Grid.RowDefinitions>
<RowDefinition Name="grdRow0" Height="30"></RowDefinition>
<RowDefinition Name="grdRow1" Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Menu HorizontalAlignment="Right" Name="menuMain"
Height="{Binding ElementName=grdRow0, Path=Height}"
Grid.Row="0" Grid.Column="0"
Width="{Binding ElementName=frmMainWindow, Path=Width}"
Margin="0,0,-8,0"
>
<Menu.ItemTemplate>
<DataTemplate>
<MenuItem ItemsSource="{Binding Path=Items}" Height="{Binding ElementName=menuMain,Path=Height}" FontSize="15"
Header="{Binding Path=Title}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Height="{Binding ElementName=menuMain,Path=Height}" FontSize="15"
Header="{Binding Path=Title}">
</MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
</DataTemplate>
</Menu.ItemTemplate>
</Menu>
</Grid>
</Window>


public partial class MainWindow : Window
{
// public BdmsInterface.MenuItem[] menus { get; set; }

public MainWindow()
{
InitializeComponent();

BdmsInterface.MenuItem[] menus = new BdmsInterface.MenuItem[]{
new BdmsInterface.MenuItem("系统","S"),
new BdmsInterface. MenuItem("项目","X"),
new BdmsInterface.MenuItem("工具","T")
};

menus[0].Items.Add(new BdmsInterface.MenuItem("退出", "X"));

this.menuMain.ItemsSource = menus;

}
}


运行后,出现主菜单(能看见“系统”一级的菜单)
其中“系统”后面有个三角符号,表示子菜单内容也有了,但是点击“系统”后,没有子菜单弹出,求解?
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
angeldgz 2014-06-04
  • 打赏
  • 举报
回复
就是这个“系统”菜单,点了之后,子菜单出不来
angeldgz 2014-06-04
  • 打赏
  • 举报
回复
我的运行结果:
angeldgz 2014-06-04
  • 打赏
  • 举报
回复
不好意思啊,由于急着回家过儿童节了,帖子被凉在这里好几天,实在感到抱歉。 这是我的MenuItem内容

namespace BdmsInterface
{
    public class MenuItem
    {
        public string Name { get; set; }
        public string Title { get; set; }
        public string Key { get; set; }
        public string Command { get; set; }
        public List<MenuItem> Items { get; private set; }

        public MenuItem()
        {
            Items = new List<MenuItem>();
        }

        public MenuItem(string Title, string Key):this()
        {
            this.Title = Title;
            this.Key = Key;
        }
    }
}
Bonjour-你好 2014-05-30
  • 打赏
  • 举报
回复
不知你的BdmsInterface是怎么定义的,我把“BdmsInterface.”都删除后,效果是这样的:
exception92 2014-05-30
  • 打赏
  • 举报
回复
先把 你的ItemTemplate 模板 去掉测试一下。
-----------------更新说明----------------- 1.1.2: 支持所有的按键,特殊键也可以直接设置,不用复制到连发键设置框。 取消F12这个热键开关,改为左右WIN键,而且屏蔽了这2个键,按了不会的,变成开关,原来的Scroll Lock不变。 1.1.1: 解决个别杀毒软件误报的现象,原因是由于UPX压缩引起的。 UPX压缩的好处是生成的连发工具体积非常小,只有200KB+,不压缩有400KB+。 生成时加入对话框由用户自行决定是否用UPX压缩(以往默认使用UPX压缩,所以误报很正常)。 右键菜单加入热键。 1.1.0: 解决在关闭连发的情况下所有按键都不正常的BUG,优化了脚本,效率提高,(请务必更新)。 该BUG的表现:按住还能连发(速度慢),有时候随便按个键还按不(按键不正常)。 修改版本号的形式为X.X.X,菜单加入英文单词提示。 -----------------使用说明----------------- 连发不是连招。。。连发的意思是按下一个键不放就自动连按该键,比如按下X键不放就实现自动攻击,比手动按要快得多,节省力气,还能减少键盘寿命o(∩_∩)o...,至于效果怎么样自己测试吧。 设置自己的连发键: 下载好之后运行 SET_AHK.exe 然后设置你要连发的按键,比如X键,然后点增加,然后点生成连发,就会在目录下面生成一个新文件: DNF_AHK.exe DNF_AHK.exe 可以单独运行的,你可以复制该文件到其他地方保存起来,SET_AHK.exe文件不需要了,当然了,要修改按键必须要用它。 如何使用连发工具: 运行上面生成好的 DNF_AHK.exe 就可以了,工具首次运行自动判断 Scroll Lock 键,会直接开启连发。注意:指示灯亮就表示开启,如果要打字就再按次Scroll Lock键,指示灯关闭就表示关闭连发功能,打字完再按次Scroll Lock键保持连发的开启状态,1.1.2以后版本增加连发热键开关:左右WIN键。 -----------------调整延时方法(非必须)----------------- 第一次运行建议先设置你的键盘延时,这样效果会更加好,当然你也可以不设置,一样可以用本连发工具,而且速度也很快: 直接运行 SetInterval.bat 文件(该文件只有在运行SET_AHK.exe的状态下才生成),点确定导入注册表即可。 这一步其实可以这样操作:控制面板---键盘---重复延时--短 托到最右边的短那里,然后重启电脑就可以了,本工具自带的注册表原理一样的,只是用 SetInterval.bat 弄好之后就可以不重启电脑直接生效,方便网吧用户。 该连发工具基于AutoHotkey核心制作而成。 Vista和WIN7系统请以系统管理员身份运行连发工具,否则可能无法连发,也请大家测试下这些系统是否能用。 56q.5d6d.com 离不开电脑制作

8,737

社区成员

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

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