我想使用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);
它給出錯誤,怎麼做?
我想使用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);
它給出錯誤,怎麼做?
此代碼的工作:
MenuFlyout m = new MenuFlyout();
MenuFlyoutItem mn = new MenuFlyoutItem();
mn.Text = "Item 1";
m.Items.Add(mn);
m.ShowAt((FrameworkElement)sender);
我假設你使用'sender'意味着這段代碼在事件處理程序中。在這種情況下,你應該在依賴它之前檢查'sender'的類型,例如將FrameworkElement元素=發件人添加爲FrameworkElement; if(element!= null){...'在塊之前。 – ClickRick
是的,你說得對,謝謝指出。 – user3090763
'MenuFlyoutItem MN = 1;'是有問題的行。我沒有Windows 8.1,因此無法證明「正確」的代碼,但看起來好像你應該在你的'MenuFlyout'中添加一些'MenuFlyoutItem',一個用於列表中的每個項目。 – ClickRick
你能提供一點代碼嗎? – user3090763
我可以猜測,但由於我無法編譯它,所以我無法確定它會起作用。你在下面的答案中的例子就是我想象的那樣,但是如果不能證明它,我不願意提出它作爲答案。 – ClickRick