Есть код переопределяющий дизайн элемента Menu.
<!--Основной стиль меню-->
<Style x:Key="MenuTemplate" TargetType="{x:Type Menu}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Height" Value="30"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Menu}">
<Border BorderThickness="1" BorderBrush="#57A0FF" Background="#525457">
<StackPanel ClipToBounds="True" Orientation="Horizontal" IsItemsHost="True"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Шаблон для элемента в главном меню с подэлементами-->
<ControlTemplate x:Key="TopLevelHeaderTemplate" TargetType="{x:Type MenuItem}">
<Border x:Name="Border">
<Grid>
<ContentPresenter Margin="6,3,6,3" ContentSource="Header" RecognizesAccessKey="True" VerticalAlignment="Center"/>
<Popup x:Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsSubmenuOpen}"
AllowsTransparency="True" Focusable="False" PopupAnimation="Fade">
<Border x:Name="SubmenuBorder" SnapsToDevicePixels="True" BorderThickness="1" Background="#252626"
BorderBrush="Black">
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
</Border>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSuspendingPopupAnimation" Value="True">
<Setter TargetName="Popup" Property="PopupAnimation" Value="None"/>
</Trigger>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" TargetName="Border" Value="#242424"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<!--Шаблон для элемента в главном меню без подэлементов-->
<ControlTemplate x:Key="TopLevelItemTemplate" TargetType="{x:Type MenuItem}">
<Border x:Name="Border">
<ContentPresenter Margin="6,3,6,3" ContentSource="Header" RecognizesAccessKey="True" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" TargetName="Border" Value="#242424"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<!--Шаблон для подэлемента меню без подэлементов-->
<ControlTemplate x:Key="SubmenuItemTemplate" TargetType="{x:Type MenuItem}">
<Border x:Name="Border">
<Grid VerticalAlignment="Center" Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
</Grid.ColumnDefinitions>
<ContentPresenter Margin="5,0,15,0" x:Name="HeaderHost" Grid.Column="0" ContentSource="Header" RecognizesAccessKey="True"/>
<TextBlock x:Name="InputGestureText" Grid.Column="1" Text="{TemplateBinding InputGestureText}" DockPanel.Dock="Right" Margin="0,0,5,0"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter TargetName="Border" Property="Background" Value="#333333"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<!--Шаблон для подэлемента меню с подэлементами-->
<ControlTemplate x:Key="SubmenuHeaderTemplate" TargetType="{x:Type MenuItem}">
<Border x:Name="Border">
<Grid VerticalAlignment="Center" Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="13"/>
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="HeaderHost" Grid.Column="0" ContentSource="Header" RecognizesAccessKey="True" Margin="5,0,0,0"/>
<Path Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,5,0"
Data="M 0 0 L 0 7 L 4 3.5 Z" Fill="{TemplateBinding Foreground}"/>
<Popup x:Name="Popup" Placement="Right" IsOpen="{TemplateBinding IsSubmenuOpen}" HorizontalOffset="10" VerticalOffset="-3"
AllowsTransparency="True" Focusable="False" PopupAnimation="Fade">
<Border x:Name="SubmenuBorder" SnapsToDevicePixels="True" BorderThickness="1" Background="#252626" BorderBrush="Black">
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
</Border>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter TargetName="Border" Property="Background" Value="#333333"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
И есть еще 1 стиль который распределяет шаблоны по нужным элементам меню.
<!--Стиль который распределяет шаблоны соответсвутющим элементам-->
<Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Style.Triggers>
<Trigger Property="Role" Value="TopLevelHeader">
<Setter Property="Template" Value="{StaticResource TopLevelHeaderTemplate}" />
<Setter Property="Grid.IsSharedSizeScope" Value="true" />
<Setter Property="Foreground" Value="#E6E6E6"/>
</Trigger>
<Trigger Property="Role" Value="TopLevelItem">
<Setter Property="Template" Value="{StaticResource TopLevelItemTemplate}" />
<Setter Property="Foreground" Value="#E6E6E6"/>
</Trigger>
<Trigger Property="Role" Value="SubmenuHeader">
<Setter Property="Template" Value="{StaticResource SubmenuHeaderTemplate}" />
</Trigger>
<Trigger Property="Role" Value="SubmenuItem">
<Setter Property="Template" Value="{StaticResource SubmenuItemTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
Но проблема в том что x:Key="{x:Type MenuItem}" то есть шаблоны применяется ко всем MenuItem а я бы хотел чтобы шаблоны применялись лишь для 1 меню у которого Style="{StaticResource MenuTemplate}".
Пытался занести этот стиль в ItemContainerStyle но почему то Setter`ы работали кроме тех которые присваивают шаблоны элементам. Да и еще шаблоны применялись только к главным элементам, а к их SubMenu присваивались стандартные значения.
P.s извиняюсь за глупый вопрос
Все оказалось куда проще
<Style.Resources>
<!--Стиль который распределяет шаблоны соответсвутющим элементам-->
<Style TargetType="{x:Type MenuItem}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Style.Triggers>
<Trigger Property="Role" Value="TopLevelHeader">
<Setter Property="Template" Value="{DynamicResource TopLevelHeaderTemplate}" />
<Setter Property="Grid.IsSharedSizeScope" Value="true" />
<Setter Property="Foreground" Value="#E6E6E6"/>
</Trigger>
<Trigger Property="Role" Value="TopLevelItem">
<Setter Property="Template" Value="{DynamicResource TopLevelItemTemplate}" />
<Setter Property="Foreground" Value="#E6E6E6"/>
</Trigger>
<Trigger Property="Role" Value="SubmenuHeader">
<Setter Property="Template" Value="{DynamicResource SubmenuHeaderTemplate}" />
</Trigger>
<Trigger Property="Role" Value="SubmenuItem">
<Setter Property="Template" Value="{DynamicResource SubmenuItemTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
</Style.Resources>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Что я должен написать в ShopCost[index] и в ShopBonus[index]? Как нужно обявить масивы ShopCost[index] и ShopBonus[index]Ну я имею виду я обявляю масивы так
Есть метод в контроллере который возвращает IEnumerable, в процессе конвейера LINQ происходит Exception и фильтр эксепшенов не перехватывает этот эксепшен...
На сайте есть два поля-календаря, которыми задается интервал дат, за который необходимо получить информацию из БДНикак не могу понять, каким...