Reuse Menu.ItemContainerStyle

本文关键字:ItemContainerStyle Menu Reuse | 更新日期: 2023-09-27 18:18:03

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

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

Reuse Menu.ItemContainerStyle

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

<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>
相关文章:
  • 没有找到相关文章