首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重用Menu.ItemContainerStyle

重用Menu.ItemContainerStyle
EN

Stack Overflow用户
提问于 2013-06-12 15:10:36
回答 1查看 2.3K关注 0票数 2

我已经创建了以下菜单。现在我想在不同的窗口上使用相同的菜单布局,并考虑将下面的代码转移到Generic.xaml,只在需要的时候引用它。最好的方法是什么,这样才能使实际使用尽可能短?

代码语言:javascript
复制
<MenuHeight="27"VerticalAlignment="Top" ItemsSource="{Binding Menu}">
    <Menu.ItemContainerStyle>
        <Style TargetType="MenuItem">
            <Setter Property="Command" Value="{Binding Execute}"/>
            <Setter Property="Icon" Value="{Binding Icon}" />
            <Setter Property="ToolTip" Value="{Binding ToolTip}"/>
        </Style>
    </Menu.ItemContainerStyle>
    <Menu.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}" >
            <TextBlock Text="{Binding Header}" />
            <HierarchicalDataTemplate.ItemContainerStyle>
                <Style TargetType="MenuItem">
                    <Setter Property="Command" Value="{Binding Execute}"/>
                    <Setter Property="Icon" Value="{Binding Icon}" />
                    <Setter Property="ToolTip" Value="{Binding ToolTip}"/>
                </Style>
            </HierarchicalDataTemplate.ItemContainerStyle>
        </HierarchicalDataTemplate>
    </Menu.ItemTemplate>
</Menu>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-12 19:39:40

将其放入资源中,它将应用于范围内的每个菜单:

代码语言:javascript
复制
<Style x:Key="{x:Type Menu}" TargetType="Menu">
    <Setter Property="ItemContainerStyle">
        <Setter.Value>
            <Style TargetType="MenuItem">
                <Setter Property="Command" Value="{Binding Execute}"/>
                <Setter Property="Icon" Value="{Binding Icon}" />
                <Setter Property="ToolTip" Value="{Binding ToolTip}"/>
            </Style>
        </Setter.Value>
    </Setter>
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <HierarchicalDataTemplate ItemsSource="{Binding Children}" >
                <TextBlock Text="{Binding Header}" />
                <HierarchicalDataTemplate.ItemContainerStyle>
                    <Style TargetType="MenuItem">
                        <Setter Property="Command" Value="{Binding Execute}"/>
                        <Setter Property="Icon" Value="{Binding Icon}" />
                        <Setter Property="ToolTip" Value="{Binding ToolTip}"/>
                    </Style>
                </HierarchicalDataTemplate.ItemContainerStyle>
            </HierarchicalDataTemplate>
        </Setter.Value>
    </Setter>
</Style>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17059616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档