WPF内置动态资源

时间:2017-04-15 11:26:50

标签: c# .net wpf xaml contextmenu

我正在尝试修改ContextMenu的样式模板的副本。 有以下行 -

<Setter Property="Background" Value="{DynamicResource MenuPopupBackgroundBrush}"/>

如何找到DynamicResource MenuPopupBackgroundBrush的定义?

1 个答案:

答案 0 :(得分:0)

有时它会显示您一起使用实时视觉树实时属性浏览器,但它不是很一致。更有把握的解决方法是简单地使用您感兴趣的特定资源命名组件,并在 Watch 窗口中查找。例如:

<Style x:Key="ContextMenuStyle1" TargetType="{x:Type ContextMenu}">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="Background" Value="{DynamicResource MenuPopupBackgroundBrush}"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="BorderBrush" Value="{DynamicResource MenuPopupBorderBrush}"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="Padding" Value="2"/>
    <Setter Property="Grid.IsSharedSizeScope" Value="True"/>
    <Setter Property="HasDropShadow" Value="{DynamicResource {x:Static SystemParameters.DropShadowKey}}"/>
    <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
    <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
    <Setter Property="FontFamily" Value="{DynamicResource {x:Static SystemFonts.MessageFontFamilyKey}}"/>
    <Setter Property="FontSize" Value="{DynamicResource {x:Static SystemFonts.MessageFontSizeKey}}"/>
    <Setter Property="FontWeight" Value="{DynamicResource {x:Static SystemFonts.MessageFontWeightKey}}"/>
</Style>

<Button>
    <Button.ContextMenu>
        <ContextMenu x:Name="cm1" Style="{DynamicResource ContextMenuStyle1}" >
            <MenuItem Header="Item 1"></MenuItem>
        </ContextMenu>
    </Button.ContextMenu>
</Button>

enter image description here

因此,您可以验证MenuPopupBackgroundBrushSolidColorBrush的颜色为#FFF5F5F5