Я загружаю элементы на странице динамически (чтение содержимого XML-файла). Динамический контент загружается в StackPanel
. Каждый элемент содержимого состоит из TextBlock
и еще одного элемента пользовательского интерфейса, поэтому для каждой пары я создаю новый 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);
Я хочу добавить к этому ContextMenu
StackPanel
(sp
, не parentSP
); в зависимости от некоторых параметров, считанных из файла, это может быть одно из двух различных контекстных меню. Я попытался следующие, но он не работает:
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 и добавления их по мере необходимости? Я попытался сделать это, добавив контекстное меню для StackPanel.Resource
секции родителя, но получил сообщение об ошибке сказав «Элемент свойство не может быть прямым потомком другого имущества элемента»
Заранее спасибо за помощь
Would было приятно получить некоторые ответы на его другие вопросы тоже ... – swinefeaster