我有一個要求在哪裏創建可自動應用的contextmenu風格,我已經嘗試了我在網上找到的每個例子,但沒有任何工作。我已經嘗試過在MSDN鏈接中敘述的樣式:http://msdn.microsoft.com/en-us/library/ms744758(v=vs.85).aspx如何爲默認的wpf contextmenu創建樣式?
我已經使用了下面的樣式,但它不工作。
<Style x:Key="CStyle" TargetType="ContextMenu">
<Setter Property="SnapsToDevicePixels"
Value="True" />
<Setter Property="OverridesDefaultStyle"
Value="True" />
<Setter Property="Grid.IsSharedSizeScope"
Value="true" />
<Setter Property="HasDropShadow"
Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContextMenu">
<Border Name="Border"
Background="Red"
BorderBrush="{StaticResource SolidBorderBrush}"
BorderThickness="1">
<StackPanel IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Cycle" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="HasDropShadow"
Value="true">
<Setter TargetName="Border"
Property="Padding"
Value="0,3,0,3" />
<Setter TargetName="Border"
Property="CornerRadius"
Value="4" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
任何人都可以指導我做到這一點?
我曾嘗試這種風格應用到TextBoxStyle(見下面的示例),當我運行它,並在文本框的內容,我看到下面的錯誤右鍵點擊:
「‘System.Windows.Style’是不是屬性'ContextMenu'的有效值。「 我在下面的風格在哪裏做錯了?請指導我。
樣品文本樣式:
<Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseTextStyle}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="ContextMenu" Value="{StaticResource CStyle}" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
這種風格適合我。你在哪裏定義了它? –
在資源部分的App.xaml中對其進行了定義。我想我會工作 – loop
我將它添加到TextBoxStyles.xaml它是一個資源字典。但它不起作用 – user2408987