2014-05-23 62 views
3

我想使用C#創建菜單彈出框。我試過這個使用c創建菜單彈出框#

List<string> l = new List<string>(); 
l.Add("Rotate"); 
l.Add("Scale"); 
l.Add("Bring to Front"); 
l.Add("Send to Back"); 
MenuFlyout m = new MenuFlyout(); 
MenuFlyoutItem mn = l; 
m.Items.Add(mn); 

它給出錯誤,怎麼做?

+0

'MenuFlyoutItem MN = 1;'是有問題的行。我沒有Windows 8.1,因此無法證明「正確」的代碼,但看起來好像你應該在你的'MenuFlyout'中添加一些'MenuFlyoutItem',一個用於列表中的每個項目。 – ClickRick

+0

你能提供一點代碼嗎? – user3090763

+0

我可以猜測,但由於我無法編譯它,所以我無法確定它會起作用。你在下面的答案中的例子就是我想象的那樣,但是如果不能證明它,我不願意提出它作爲答案。 – ClickRick

回答

8

此代碼的工作:

MenuFlyout m = new MenuFlyout(); 
MenuFlyoutItem mn = new MenuFlyoutItem(); 
mn.Text = "Item 1"; 
m.Items.Add(mn); 
m.ShowAt((FrameworkElement)sender); 
+0

我假設你使用'sender'意味着這段代碼在事件處理程序中。在這種情況下,你應該在依賴它之前檢查'sender'的類型,例如將FrameworkElement元素=發件人添加爲FrameworkElement; if(element!= null){...'在塊之前。 – ClickRick

+0

是的,你說得對,謝謝指出。 – user3090763