加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-7 – 以编程方式添加WP7 ContextMenu

发布时间:2020-12-14 02:07:28 所属栏目:Windows 来源:网络整理
导读:我正在动态地在页面上加载元素(读取 XML文件的内容).动态内容被加载到StackPanel中.内容的每个元素都包含一个TextBlock和另一个UI元素,因此对于每一对,我创建一个新的StackPanel,然后将其添加到父StackPanel.代码如下所示: TextBlock header = new TextBloc
我正在动态地在页面上加载元素(读取 XML文件的内容).动态内容被加载到StackPanel中.内容的每个元素都包含一个TextBlock和另一个UI元素,因此对于每一对,我创建一个新的StackPanel,然后将其添加到父StackPanel.代码如下所示:

TextBlock header = new TextBlock() {
        Text = "Heading 1",HorizontalAlignment = HorizontalAlignment.Stretch,VerticalAlignment = VerticalAlignment.Top,Foreground = (SolidColorBrush)Application.Current.Resources["PhoneAccentBrush"],};
TextBox item = new TextBox() {
        HorizontalAlignment = HorizontalAlignment.Stretch,};
StackPanel sp = new StackPanel();
sp.Children.Add( header );
sp.Children.Add( item );

parentSP.Children.Add( sp );

我想向这个StackPanel添加一个ContextMenu(sp,而不是parentSP);根据从文件中读取的一些参数,它可以是2个不同的上下文菜单之一.我尝试了以下但它不起作用:

ContextMenu cm = new ContextMenu();
    RoutedEventHandler clickHandler = new RoutedEventHandler( OnContextMenuClicked );

    // Add "edit" entry
    MenuItem menuItem = new MenuItem() {
      Header = "edit",Tag = "edit",};

    menuItem.Click += clickHandler;
    cm.Items.Add( menuItem );

    // Add "delete" entry
    menuItem = new MenuItem() {
      Header = "delete",Tag = "delete",};

    menuItem.Click += clickHandler;
    cm.Items.Add( menuItem );

    parentSP.Children.Add( cm );

如何以编程方式向StackPanel添加上下文菜单?

另外,有没有更好的方法来解决这个问题?也许通过在XAML资源部分中存储2种不同类型的上下文菜单并根据需要添加它们?我尝试通过将上下文菜单添加到父级的StackPanel.Resource部分来执行此操作,但收到错误消息“属性元素不能是另一个属性元素的直接子元素”

在此先感谢您的帮助

解决方法

ContextMenuService.SetContextMenu(sp,cm);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读