2014-11-12 6 views
0

У меня есть контекстное меню, в которое я хотел бы добавить несколько элементов управления. В приведенном ниже примере я добавляю TextBox, CheckBox и Slider.Добавление элементов управления в Contextmenu

<ContextMenu> 
    <MenuItem Header="Cut" 
       Command="Cut" /> 
    <MenuItem Header="Copy" 
       Command="Copy" /> 
    <MenuItem Header="Paste" 
       Command="Paste" /> 
    <Separator /> 

    <Border Background="#999" 
      BorderThickness="1" 
      BorderBrush="Black" 
      Padding="5"> 
     <Grid Width="300"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="auto" /> 
       <ColumnDefinition Width="8" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 

      <Grid.RowDefinitions> 
       <RowDefinition Height="auto" /> 
       <RowDefinition Height="auto" /> 
       <RowDefinition Height="auto" /> 
      </Grid.RowDefinitions> 

      <Label Content="PropA" 
        Grid.Column="0" 
        Grid.Row="0" /> 
      <Label Content="PropB" 
        Grid.Column="0" 
        Grid.Row="1" /> 
      <Label Content="PropC" 
        Grid.Column="0" 
        Grid.Row="2" /> 

      <TextBox Text="-10" 
         Grid.Column="2" 
         Grid.Row="0" /> 
      <CheckBox Grid.Column="2" 
         Grid.Row="1" /> 
      <Slider Grid.Column="2" 
        Grid.Row="2" /> 
     </Grid> 
    </Border> 
</ContextMenu> 

Какие результаты в:

enter image description here

Есть в любом случае, чтобы получить это, чтобы выглядеть лучше, хотя?

Могу ли я отключить выделенную синюю границу (показано красным) вокруг MenuItem?

enter image description here

Могу ли я растянуть управления, чтобы соответствовать меню?

enter image description here

ответ

2

Ваш Border заворачивают в MenuItem. Что вы можете сделать, это использовать MenuItem и переместить Border быть его шаблоном

<ContextMenu> 
    <MenuItem Header="Cut" Command="Cut" /> 
    <MenuItem Header="Copy" Command="Copy" /> 
    <MenuItem Header="Paste" Command="Paste" /> 
    <Separator /> 
    <MenuItem> 
     <MenuItem.Template> 
     <ControlTemplate TargetType="{x:Type MenuItem}"> 
      <Border Background="#999" BorderThickness="1" BorderBrush="Black" Padding="5"> 
       <Grid Width="300"> 
        <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="auto" /> 
        <ColumnDefinition Width="8" /> 
        <ColumnDefinition Width="*" /> 
        </Grid.ColumnDefinitions> 
        <Grid.RowDefinitions> 
        <RowDefinition Height="auto" /> 
        <RowDefinition Height="auto" /> 
        <RowDefinition Height="auto" /> 
        </Grid.RowDefinitions> 
        <Label Content="PropA" Grid.Column="0" Grid.Row="0" /> 
        <Label Content="PropB" Grid.Column="0" Grid.Row="1" /> 
        <Label Content="PropC" Grid.Column="0" Grid.Row="2" /> 
        <TextBox Text="-10" Grid.Column="2" Grid.Row="0" /> 
        <CheckBox Grid.Column="2" Grid.Row="1" /> 
        <Slider Grid.Column="2" Grid.Row="2" /> 
       </Grid> 
      </Border> 
     </ControlTemplate> 
     </MenuItem.Template> 
    </MenuItem> 
</ContextMenu> 
Смежные вопросы