pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

右鍵單擊 Silverlight 4 應用程序中的列表框

Right-click on a Listbox in a Silverlight 4 app(右鍵單擊 Silverlight 4 應用程序中的列表框)
本文介紹了右鍵單擊 Silverlight 4 應用程序中的列表框的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試實現(xiàn)我過去在 Winforms 應用程序中認為理所當然的內(nèi)容.我是 Silverlight 菜鳥,所以希望所有這些都是初級的.

I am trying to implement what I used to take for granted in Winforms applications. I am a Silverlight noob, so hopefully all this is elementary.

我在 Silverlight 4 應用中有一個列表框.我想執(zhí)行以下操作:

I have a listbox in a Silverlight 4 app. I'd like to do the following:

  1. 右鍵單擊列表框
  2. 將項目放在我點擊突出顯示的位置
  3. 我想要彈出一個上下文菜單(在上下文菜單中有我自己的項目)

從我目前的研究來看,Silverlight 中似乎沒有 ContextMenu 構(gòu)造,相反,我們必須構(gòu)建一個 Grid/Canvas 結(jié)構(gòu)并將其附加到一個 Popup 對象,然后彈出該對象.

From my research so far, it appears that there is no ContextMenu construct in Silverlight, instead we have to build up a Grid/Canvas structure and attach it to a Popup object, which is what is then popped up.

我的問題如下:

  1. 要完成 #2,我需要對列表框進行某種命中測試.我不知道該怎么做,我的 google-fu 也沒有幫助.
  2. 一旦我確定了鼠標下的索引,我該如何實際選擇項目?
  3. 是否有我可以使用的可重用上下文菜單組件?如果組件允許任意子菜單,則額外加分.

推薦答案

我一直在尋找同樣的事情.我在 CodePlex 檢查了 Silverlight Control Toolkit 并瀏覽了示例(這是一個非常方便的資源),這就是我發(fā)現(xiàn)是您所問問題的解決方案:

I've been looking around for the same thing. I checked the Silverlight Control Toolkit at CodePlex and went through the samples (it's a very handy resource) and here's what I found to be the solution to what you asked:

  1. 為您的列表框創(chuàng)建一個 ItemTemplate

  1. Create an ItemTemplate for your ListBox

在您希望成為可右鍵單擊"的 ItemTemplate 的部分中,設置 System.Windows.Controls.Input 中存在的附加屬性 ContextMenuService.ContextMenu.Toolkit 命名空間

in the part that you want to be "right-clickable" of your ItemTemplate set the attached property ContextMenuService.ContextMenu that exists within the System.Windows.Controls.Input.Toolkit namespace

將 MenuItem 控件添加到您的 ContextMenu 并將 Click 屬性設置為相應的點擊事件處理程序

add MenuItem controls to your ContextMenu and set the Click property to the corresponding click event handler

在事件處理程序中,從發(fā)送方獲取DataContext(您可以使用它在ListBox中找到相應的元素)

in the event handler, get the DataContext from the sender (you can use that to find the corresponding element in the ListBox)

要使該元素被選中,只需將列表框中的 SelectedItem 屬性設置為它

to make that element Selected, just set the SelectedItem property in the list box to it

向事件處理程序添加任何自定義邏輯

Add any custom logic to the event handler

示例頁面中有一個示例,只需從導航窗格中轉(zhuǎn)到Input->ContextMenu"即可.

There's an example in the samples page, just go to "Input->ContextMenu" from the navigation pane.

如果你想要簡潔的東西,這是一個簡化的例子:

If you want something concise, Here's a simplified example:

<ListBox ItemsSource="{StaticResource People}"
             Name="myListBox">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}">
                    <controlsInputToolkit:ContextMenuService.ContextMenu>
                        <controlsInputToolkit:ContextMenu>
                            <controlsInputToolkit:MenuItem Header="Show in MessageBox"
                                                           Click="show_Click" />
                        </controlsInputToolkit:ContextMenu>
                    </controlsInputToolkit:ContextMenuService.ContextMenu>
                </TextBlock>
            </DataTemplate>
        </ListBox.ItemTemplate>
</ListBox>

與:

xmlns:controlsInputToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"

代碼:

private void show_Click(object sender, RoutedEventArgs e)
    {
        var person = ((MenuItem)sender).DataContext as Person;
        if (null == person) return;
        MessageBox.Show("My Name is: " + person.Name);
        myListBox.SelectedItem = person;
    }

我希望這會有所幫助:)

I hope this helps :)

這篇關于右鍵單擊 Silverlight 4 應用程序中的列表框的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關文檔推薦

WPF c# webbrowser scrolls over top menu(WPF c# webbrowser 在頂部菜單上滾動)
C# Console app - How do I make an interactive menu?(C# 控制臺應用程序 - 如何制作交互式菜單?)
How to add an icon to System.Windows.Forms.MenuItem?(如何向 System.Windows.Forms.MenuItem 添加圖標?)
How to avoid duplicate form creation in .NET Windows Forms?(如何避免在 .NET Windows Forms 中創(chuàng)建重復的表單?)
Building a database driven menu with ASP.NET, JQuery and Suckerfish(使用 ASP.NET、JQuery 和 Suckerfish 構(gòu)建數(shù)據(jù)庫驅(qū)動的菜單)
UI Automation Control Desktop Application and Click on Menu Strip(UI自動化控制桌面應用程序并單擊菜單條)
主站蜘蛛池模板: UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | 内六角扳手「厂家」-温州市威豪五金工具有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 服务器之家 - 专注于服务器技术及软件下载分享 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 苏州教学设备-化工教学设备-环境工程教学模型|同科教仪 | 直流大电流电源,燃料电池检漏设备-上海政飞 | 云杂志网-学术期刊-首页 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 湖南自考_湖南自学考试 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 不锈钢发酵罐_水果酒发酵罐_谷物发酵罐_山东誉诚不锈钢制品有限公司 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 |