2

以下のメニューを作成しました。今、別のウィンドウで同じメニュー レイアウトを使用したいので、以下のコードを Generic.xaml にシフトし、必要なときにのみ参照することを考えました。実際の使用ができるだけ短くなるように、それを行うための最良の方法は何ですか?

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

1 に答える 1

3

これをリソースに配置すると、スコープ内のすべてのメニューに適用されます。

<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>
于 2013-06-12T11:39:40.060 に答える