在一個WPF應用程序我有Style
一個ResourceDictionary
爲的TargetTypeMyCustomControl
定義:WPF Grid.Resources樣式中斷ResourceDictionary樣式。如何讓它們共存?
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cc="clr-namespace:MyControlLibrary;assembly=MyControlLibrary" >
<Style TargetType="{x:Type cc:MyCustomControl}">
<Setter Property="Prop1" Value="1" />
<Setter Property="Prop2" Value="2" />
...
的問題是,我需要在頁面XAML定義上下文菜單MyCustomControl
像以下:
<Grid>
<Grid.Resources>
<ContextMenu x:Key="MyControlContextMenu">
<MenuItem Name="Name1"
Header="Header1"
Click="Cm1_Click"
.../>
....
</ContextMenu>
<Style TargetType="{x:Type ScNamespace:MyCustomControl}">
<Setter Property="ContextMenu" Value="{StaticResource MyControlContextMenu}"/>
</Style>
</Grid.Resources>
...
在這種情況下,雖然我只在Grid中的Style定義中指定了一個Property,但ResourceDictionary Style的值完全不適用。它們會被頁面資源樣式覆蓋並被忽略。
如何解決這個問題?也許有一種方法可以在Grid.Resources部分中引用ResourceDictionary來強制查找ResourceDictionary樣式?
你在哪裏定義/包含第一個ResourceDictionary? – CodeNaked 2011-05-05 17:34:09
@CodeNaked在App.xaml中作爲'ResourceDictionary.MergedDictionaries'中的'Application.Resources' – rem 2011-05-05 17:49:21