2014-02-17 5 views
0

Я создал ContextMenu с TextBox как это:Этикетка для TextBox в ContextMenu в WPF

ContextMenu contextMenu = new ContextMenu(); 
MenuItem xMenuItem = new MenuItem(); 

TextBox xTextBox = new TextBox();  
xMenuItem.Header = xTextBox; 

contextMenu.Items.Add(xMenuItem); 

Все нормально, но ... я нужен какой-то этикетки для этого пункта меню TextBox.

Как мне это сделать?

+3

Вы должны создать панель (StackPanel, например), добавить метку и TextBox к нему, а затем присвоить StackPanel к MenuItem.Header. – wdosanjos

+0

ОК. Это похоже на ответ ... почему вы написали это в комментарии? :) – Kamil

+0

@wdosanjos, пожалуйста, добавьте свой комментарий в ответ (желательно с некоторыми дополнительными деталями), чтобы Kamil мог принять его как правильный ответ. – Sheridan

ответ

1

Вы должны создать панель (например, StackPanel), добавить к ней ярлык и текстовое поле, а затем назначить StackPanel в MenuItem.Header. Пример:

ContextMenu contextMenu = new ContextMenu(); 
MenuItem xMenuItem = new MenuItem(); 

StackPanel panel = new StackPanel() { Orientation = Orientation.Horizontal }; 

Label label = new Label(); 
TextBox xTextBox = new TextBox();  

panel.Children.Add(label); 
panel.Children.Add(xTextBox); 

xMenuItem.Header = panel; 

contextMenu.Items.Add(xMenuItem); 
+0

Если кто-то хочет использовать этот код - не забудьте настроить текст ярлыка :) – Kamil