Я недавно создал меню, содержащее различные заголовки и подзаголовки. Затем измените шаблон по умолчанию в blend 2017 (настройте его).
После этого главные главы видны, но дополнительные главы отсутствуют.
Вы можете увидеть код ниже.
Перед этим все работает нормально.
Мой код XAML:
<MenuItem Header="Options" Foreground="White">
<MenuItem Header="Volume" Template="{DynamicResource MenuItemControlTemplate1}">
<MenuItem Header="Full" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Half" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Mute" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Increase By" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Increase To" Template="{DynamicResource MenuItemControlTemplate1}"/>
</MenuItem>
<Separator Style="{DynamicResource SeparatorStyle1}"/>
<MenuItem Header="Playlist" Template="{DynamicResource MenuItemControlTemplate1}"/>
<Separator Style="{DynamicResource SeparatorStyle1}"/>
<MenuItem Header="Repeat" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Repeat All" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Shuffle" Template="{DynamicResource MenuItemControlTemplate1}"/>
<Separator Style="{DynamicResource SeparatorStyle1}"/>
<MenuItem Header="Play by Duratiuon" Template="{DynamicResource MenuItemControlTemplate1}">
<MenuItem Header="Are less than 5 minutes" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Are less than 10 minutes" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Are less than 15 minutes" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Are less than 30 minutes" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Are less than 1 hour" Template="{DynamicResource MenuItemControlTemplate1}"/>
</MenuItem>
<MenuItem Header="Play Videos only" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Play Audios only" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Play Non-Stop with list" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Play Non-Stop without list" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Play even indexes" Template="{DynamicResource MenuItemControlTemplate1}"/>
<MenuItem Header="Play odd indexes" Template="{DynamicResource MenuItemControlTemplate1}"/>
</MenuItem>
Это выглядит так:
Screen-Shot
Время выбора изображения Снимок экрана типа выбора.
Шаблон моего меню (Созданный с помощью blend auto, я просто изменяю фон и цвета выделения):
<ControlTemplate x:Key="MenuItemControlTemplate1" TargetType="{x:Type MenuItem}">
<Border x:Name="templateRoot" BorderBrush="Black" BorderThickness="0" Background="Black" SnapsToDevicePixels="True">
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="22" SharedSizeGroup="MenuItemIconColumnGroup" Width="Auto"/>
<ColumnDefinition Width="13"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition SharedSizeGroup="MenuItemIGTColumnGroup" Width="Auto"/>
<ColumnDefinition Width="20"/>
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="Icon" Content="{TemplateBinding Icon}" ContentSource="Icon" HorizontalAlignment="Center" Height="16" Margin="3" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center" Width="16"/>
<Border x:Name="GlyphPanel" BorderBrush="Black" BorderThickness="1" Background="Black" ClipToBounds="False" HorizontalAlignment="Center" Height="22" Margin="-1,0,0,0" Visibility="Hidden" VerticalAlignment="Center" Width="22">
<Path x:Name="Glyph" Data="F1M10,1.2L4.7,9.1 4.5,9.1 0,5.2 1.3,3.5 4.3,6.1 8.3,0 10,1.2z" Fill="RoyalBlue" FlowDirection="LeftToRight" Height="11" Width="10"/>
</Border>
<ContentPresenter x:Name="menuHeaderContainer" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Grid.Column="2" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentSource="Header" HorizontalAlignment="Left" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
<TextBlock x:Name="menuGestureText" Grid.Column="4" Margin="{TemplateBinding Padding}" Opacity="0.7" Text="{TemplateBinding InputGestureText}" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Icon" Value="{x:Null}">
<Setter Property="Visibility" TargetName="Icon" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Visibility" TargetName="GlyphPanel" Value="Visible"/>
<Setter Property="Visibility" TargetName="Icon" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" TargetName="templateRoot" Value="#FF6027CB"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#FF6027CB"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextElement.Foreground" TargetName="templateRoot" Value="#FF707070"/>
<Setter Property="Fill" TargetName="Glyph" Value="#FF707070"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsHighlighted" Value="True"/>
<Condition Property="IsEnabled" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="templateRoot" Value="#0A000000"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="#21000000"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
Ниже приведен мой шаблон разделителя (зеленый разделитель цвета на изображении вы можете видеть, но это не оказывает никакого влияния. Подзаголовки становятся невидимыми после применения верхнего шаблона меню, но вы также можете проверить этот шаблон)
Шаблон моего разделителя:
<SolidColorBrush x:Key="Menu.Static.Separator" Color="Green"/>
<Style x:Key="SeparatorStyle1" TargetType="{x:Type Separator}">
<Setter Property="Background" Value="{StaticResource Menu.Static.Separator}"/>
<Setter Property="BorderBrush" Value="{StaticResource Menu.Static.Separator}"/>
<Setter Property="MinHeight" Value="1"/>
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Border BorderBrush="Green" BorderThickness="1" Background="Green" Margin="30,0,0,0"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
Что не так, любая помощь будет оценена.
Спасибо
Аби