2016-12-21 2 views
1

Как содержимое заголовка элемента меню растянуть? Я имею в виду что-то вроде этого:Заголовок элемента заголовка Stretch-fill в WPF

<Menu> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Rows="1"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <Ellipse Fill="Red" MinWidth="20" MinHeight="20" 
     VerticalAlignment="Stretch" HorizontalAlignment="Stretch" /> 
    <Ellipse Fill="Green" MinWidth="20" MinHeight="20" 
     VerticalAlignment="Stretch" HorizontalAlignment="Stretch" /> 
</Menu> 

эллипсы только 20х20 ...

+0

Вы не нашли что-то почитателю xaml? Возможно, вы ищете [MenuItem.HeaderTemplate] (https://msdn.microsoft.com/en-us/library/system.windows.controls.menuitem (v = vs.110) .aspx)? –

+0

@ChrisW. Я попытался предоставить ItemContainerStyle, ItemTemplate, Header, HeaderTemplate - ничего не помогает. Это после замены ItemsControl вместо Menu, но я ищу поведение в меню здесь ... –

ответ

2

меню помещает каждый Ellipse внутри MenuItem, и шаблон по умолчанию MenuItem не позволяет его содержание растягиваться. Поэтому вам необходимо переопределить этот шаблон, используя ItemContainerStyle:

<Menu> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Rows="1"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 

    <!-- New MenuItem template: --> 
    <ItemsControl.ItemContainerStyle> 
     <Style TargetType="MenuItem"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="MenuItem"> 
         <Border Background="Gold" BorderBrush="Black" BorderThickness="2" Margin="1" > 
          <ContentControl Content="{TemplateBinding Header}"/> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ItemsControl.ItemContainerStyle> 

    <Ellipse Fill="Red" MinWidth="20" MinHeight="20" 
      VerticalAlignment="Stretch" HorizontalAlignment="Stretch" /> 
    <Ellipse Fill="Green" MinWidth="20" MinHeight="20" 
      VerticalAlignment="Stretch" HorizontalAlignment="Stretch" /> 
</Menu> 
Смежные вопросы