Я хочу, чтобы создать новый стиль для ContextMenu или подсказка на основе это по умолчанию в Expression Blend 4. Для этого я делаю следующее (пример для ContextMenu):WPF: Редактирование ContextMenu или ToolTip в Expression Blend 4: ошибка «не может иметь логического или визуального родителя».
- Создать новое приложение WPF в EBlend 4.
- Положите кнопку на окне.
- Создать кнопку ContextMenu для кнопки.
- Добавьте два примера в ContextMenu (с заголовком i.e. «item1» и «item2»).
- В панели «Свойства» в свойствах свойств ContextMenu в свойствах «Стиль» щелкните по квадрату в правой части свойства «Стиль» и выберите «Преобразовать в новый ресурс ...».
- В открывшемся окне «Создать стиль ресурса» выберите «определено в» для «Этот документ [Окно: Окно]» или новый словарь ресурсов - это не имеет значения.
- Я получаю XAML для стиля ContextMenu по умолчанию, как это в нижней части моего сообщения.
- Я хочу отредактировать этот стиль с предварительным просмотром, поэтому перейдите на вкладку «Ресурсы», найдите свой «ContextMenuStyle1», щелкните правой кнопкой мыши и выберите «Изменить».
- Я не могу отредактировать стиль, у вас есть информация о том, что было исключено исключение «ContextMenu» не может иметь логического или визуального родителя. ».
Кроме того, я не могу добавить в моем словаре ресурсов любые другие новые стили, потому что он говорит: «Ресурс не может быть добавлен в„ResourceDictionary1.xaml“, так как„ResourceDictionary1.xaml“содержит ошибки, которые мешают ему быть обновлены «. пока я не закрою «ResourceDictionary1.xaml» и не открою его снова.
Можно ли решить проблему и дать решение о том, как редактировать стиль ContextMenu или ToolTip в Expression Blend 4 с визуальным предварительным просмотром изменений и доступом ко всем его свойствам и функциям?
<Style x:Key="ContextMenuStyle1" TargetType="{x:Type ContextMenu}">
<Setter Property="Background" Value="{DynamicResource MenuBackgroundBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="{DynamicResource WindowBorderBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Border Uid="Border_93">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="Tag" Value="{DynamicResource {x:Static SystemParameters.DropShadowKey}}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Tag, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Padding" Value="0,0,5,5"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="4" Opacity="0.8" ShadowDepth="1"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Uid="Border_50">
<ScrollViewer CanContentScroll="True" Style="{DynamicResource {ComponentResourceKey ResourceId=MenuScrollViewer, TypeInTargetAssembly={x:Type FrameworkElement}}}" Uid="ScrollViewer_9">
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Cycle" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Uid="ItemsPresenter_5"/>
</ScrollViewer>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>