私はページ上の要素を動的に読み込みます(XMLファイルの内容を読み込みます)。動的コンテンツはStackPanel
にロードされます。コンテンツの各要素はTextBlock
と1つの他のUI要素で構成されているため、各ペアに対して新しいStackPanel
を作成してからStackPanel
に追加します。コードは次のようになります。プログラムでWP7 ContextMenuを追加する
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,
VerticalAlignment = VerticalAlignment.Top,
};
StackPanel sp = new StackPanel();
sp.Children.Add(header);
sp.Children.Add(item);
parentSP.Children.Add(sp);
私はこのStackPanel
(sp
、ないparentSP
)にContextMenu
を追加したいです。ファイルから読み込まれたいくつかのパラメータに応じて、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
セクションにコンテキストメニューを追加することでこれをやってみましたが、エラーが発生しました彼の他の質問へのいくつかの答えを得るのもいいです... – swinefeaster