WPF 内置动态资源

WPF Built-In Dynamic Resources

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

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

如何找到 DynamicResource MenuPopupBackgroundBrush 的定义?

有时它会显示你一起使用Live Visual TreeLive 属性 Explorer,但不是很一致.一种更可靠的查找方法是使用您感兴趣的特定资源简单地命名组件并在 Watch window 中查找它。例如:

<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>

因此,您可以验证 MenuPopupBackgroundBrush 是颜色为 #FFF5F5F5SolidColorBrush