如何添加Combobox作为LabelMenu项目进行标签控制。 WPF应用程序

时间:2012-10-31 11:57:01

标签: c# wpf wpf-controls contextmenu

我想在后面的代码中为wpf应用程序中的某些标签控件添加组合框作为ContextMenu项。我该怎么做?我在网上搜索了很多东西,但没有什么可以提高效率。

3 个答案:

答案 0 :(得分:2)

以下代码只是您如何构建ContextMenu的概念证明。它会为ComboBox提供MenuItem作为内容。

<Label Content="label with context menu">
    <Label.ContextMenu>
        <ContextMenu>
            <MenuItem Header="menu 1">
                <ComboBox>
                    <ComboBoxItem Content="combo 1" IsSelected="True" />
                    <ComboBoxItem Content="combo 2" />
                    <ComboBoxItem Content="combo 3" />
                </ComboBox>
            </MenuItem>
        </ContextMenu>
    </Label.ContextMenu>
</Label>

答案 1 :(得分:1)

另一种选择......这允许ComboBox在您进行右键单击时直接显示。将其复制并粘贴到KAXAML中以使其正常工作。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  
  <Label Content="Some Label">
  <Label.ContextMenu>
  <ContextMenu>
  <ContextMenu.Template>
  <ControlTemplate>
  <ComboBox SelectedIndex="0">
  <ComboBoxItem>One</ComboBoxItem>
  <ComboBoxItem>Two</ComboBoxItem>
  <ComboBoxItem>Three</ComboBoxItem>
  </ComboBox>
  </ControlTemplate>
  </ContextMenu.Template>
  </ContextMenu>
  </Label.ContextMenu>
  </Label>
  </Grid>
</Page>

enter image description here

答案 2 :(得分:0)

我得到了解决方案,我们可以按照以下方式做到:

        ContextMenu contextmenu = new ContextMenu();
        ComboBox CmbColorMenu = new ComboBox();
        CmbColorMenu.ItemsSource = FontColors;// FontColors is list<objects>
        CmbColorMenu.DisplayMemberPath = "Text";
        contextmenu.Items.Add(CmbColorMenu);