0

我正在寻找一种为我的 WPF 项目中的所有窗口创建全局资源的方法。我有各种不同控件的窗口,但它们都应该有相同的上下文菜单,例如这个按钮的上下文菜单:

        <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Header="1"/>
                <MenuItem Header="More">
                    <MenuItem Header="2"/>
                    <MenuItem Header="2" IsCheckable="True"/>
                    <MenuItem Header="2" IsCheckable="True"/>
                    <MenuItem Header="2" IsEnabled="False"/>
                    <MenuItem Header="More">
                        <MenuItem Header="3"/>
                        <MenuItem Header="More">
                            <MenuItem Header="4"/>
                        </MenuItem>
                    </MenuItem>
                </MenuItem>
            </ContextMenu>
        </Button.ContextMenu>

也应该可以在自己不同的窗口中的标签上使用。

像这样的东西:

resource file: contextMenu
wpf form 1: use contextMenur resource for button
wpf form 2: use contextMenur resource for label
wpf form 3: use contextMenur resource for combobox

我阅读的所有资源教程都在同一窗口中提供了资源

4

2 回答 2

2

将其添加到 App.xaml 文件的 部分<Application.Resources>

<Application ...>
   <Application.Resources>
      <SolidColorBrush x:Key="somebrush" ... />
   </Application.Resources>
</Application>

别的地方:

   <Grid Background="{StaticResource somebrush}">
      ...
   </Grid>

(来自 MA Stoecker 的 MCTS 培训工具包 Windows 应用程序开发)

因此,您可以将 ContextMenu 放入资源中,给它一个 x:Key,然后编写

   <Button ...>
       <Button.ContextMenu>
           <StaticResource ResourceKey="keyThatWasGiven" />
       </Button.ContextMenu>   
   </Button>
于 2012-08-30T08:54:46.387 回答
2

您可以将它放在一个独立的环境ResourceDictionary中,并在任何Window使用MergedDictionaries(参见示例部分)中引用它。

于 2012-08-30T08:55:00.687 回答