<commit_before><!-- Copyright (c) <NAME>. All rights reserved. -->
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
<UserControl x:Class="Core2D.UI.Wpf.Controls.MenuControl" 
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:core="clr-namespace:Core2D;assembly=Core2D" 
             xmlns:controls="clr-namespace:Core2D.UI.Wpf.Controls" 
             xmlns:p="clr-namespace:Core2D.UI.Wpf.Properties" 
             mc:Ignorable="d" 
             d:DesignHeight="20" d:DesignWidth="1324">
    <UserControl.Resources>
        <Style x:Key="MenuItemVisibilityStyle" TargetType="MenuItem">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Editor.Project}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
        <Style x:Key="SeparatorVisibilityStyle" TargetType="Separator">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Editor.Project}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>
    <Menu Background="Transparent">
        <MenuItem Header="{x:Static p:Resources.MenuFile}">
            <MenuItem Header="{x:Static p:Resources.MenuFileNew}" Command="{x:Static core:Commands.NewCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+N"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuFileOpen}" Command="{x:Static core:Commands.OpenCommand}" InputGestureText="Ctrl+O"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuFileClose}" Command="{x:Static core:Commands.CloseCommand}" InputGestureText="Ctrl+F4" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <Separator Style="{StaticResource SeparatorVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileSave}" Command="{x:Static core:Commands.SaveCommand}" InputGestureText="Ctrl+S" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileSaveAs}" Command="{x:Static core:Commands.SaveAsCommand}" InputGestureText="Ctrl+Shift+S" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <Separator Style="{StaticResource SeparatorVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileExport}" Command="{x:Static core:Commands.ExportCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText="Ctrl+E" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <Separator Style="{StaticResource SeparatorVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileRecent}" ItemsSource="{Binding RecentProjects}">
                <MenuItem.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" ToolTip="{Binding Path}"/>
                    </DataTemplate>
                </MenuItem.ItemTemplate>
                <MenuItem.ItemContainerStyle>
                    <Style TargetType="MenuItem">
                        <Setter Property="Command" Value="{x:Static core:Commands.OpenCommand}"/>
                        <Setter Property="CommandParameter" Value="{Binding Path}"/>
                    </Style>
                </MenuItem.ItemContainerStyle>
            </MenuItem>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuFileExit}" Command="{x:Static core:Commands.ExitCommand}" InputGestureText="Alt+F4"/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuEdit}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuEditUndo}" Command="{x:Static core:Commands.UndoCommand}" InputGestureText="Ctrl+Z"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditRedo}" Command="{x:Static core:Commands.RedoCommand}" InputGestureText="Ctrl+Y"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditCopyAsEmf}" Command="{x:Static core:Commands.CopyAsEmfCommand}" InputGestureText="Ctrl+Shift+C"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditCut}" Command="{x:Static core:Commands.CutCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+X"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditCopy}" Command="{x:Static core:Commands.CopyCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+C"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditPaste}" Command="{x:Static core:Commands.PasteCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+V"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditDelete}" Command="{x:Static core:Commands.DeleteCommand}" CommandParameter="{Binding}" InputGestureText="Del"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditSelectAll}" Command="{x:Static core:Commands.SelectAllCommand}" InputGestureText="Ctrl+A"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditDeselectAll}" Command="{x:Static core:Commands.DeselectAllCommand}" InputGestureText="Esc"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditClearAll}" Command="{x:Static core:Commands.ClearAllCommand}" InputGestureText=""/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditGroup}" Command="{x:Static core:Commands.GroupCommand}" InputGestureText="Ctrl+G"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditUngroup}" Command="{x:Static core:Commands.UngroupCommand}" InputGestureText="Ctrl+U"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditOrder}">
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderSendToBack}" Command="{x:Static core:Commands.SendToBackCommand}" InputGestureText="Shift+-"/>
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderSendBackward}" Command="{x:Static core:Commands.SendBackwardCommand}" InputGestureText="-"/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderBringForward}" Command="{x:Static core:Commands.BringForwardCommand}" InputGestureText="+"/>
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderBringToFront}" Command="{x:Static core:Commands.BringToFrontCommand}" InputGestureText="Shift++"/>
            </MenuItem>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuView}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuViewZoomReset}" Command="{x:Static core:Commands.ZoomResetCommand}" InputGestureText="Z"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuViewZoomExtent}" Command="{x:Static core:Commands.ZoomExtentCommand}" InputGestureText="X"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuViewZoomAutofit}" IsCheckable="True" IsChecked="{Binding Editor.Renderers[0].State.EnableAutofit, Mode=TwoWay}" InputGestureText=""/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuProject}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuProjectSubMenuImport}">
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyle}" Command="{x:Static core:Commands.ImportStyleCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyles}" Command="{x:Static core:Commands.ImportStylesCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyleLibrary}" Command="{x:Static core:Commands.ImportStyleLibraryCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyleLibraries}" Command="{x:Static core:Commands.ImportStyleLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroup}" Command="{x:Static core:Commands.ImportGroupCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroups}" Command="{x:Static core:Commands.ImportGroupsCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroupLibrary}" Command="{x:Static core:Commands.ImportGroupLibraryCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroupLibraries}" Command="{x:Static core:Commands.ImportGroupLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportTemplate}" Command="{x:Static core:Commands.ImportTemplateCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportTemplates}" Command="{x:Static core:Commands.ImportTemplatesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
            </MenuItem>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuProjectSubMenuExport}">
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyle}" Command="{x:Static core:Commands.ExportStyleCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary.Selected}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyles}" Command="{x:Static core:Commands.ExportStylesCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyleLibrary}" Command="{x:Static core:Commands.ExportStyleLibraryCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyleLibraries}" Command="{x:Static core:Commands.ExportStyleLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroup}" Command="{x:Static core:Commands.ExportGroupCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary.Selected}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroups}" Command="{x:Static core:Commands.ExportGroupsCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroupLibrary}" Command="{x:Static core:Commands.ExportGroupLibraryCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroupLibraries}" Command="{x:Static core:Commands.ExportGroupLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportTemplate}" Command="{x:Static core:Commands.ExportTemplateCommand}" CommandParameter="{Binding Editor.Project.CurrentTemplate}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportTemplates}" Command="{x:Static core:Commands.ExportTemplatesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
            </MenuItem>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuTool}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuToolNone}" Command="{x:Static core:Commands.ToolNoneCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.None}}" InputGestureText="N"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolSelection}" Command="{x:Static core:Commands.ToolSelectionCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Selection}}" InputGestureText="S"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolPoint}" Command="{x:Static core:Commands.ToolPointCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Point}}" InputGestureText="P"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolLine}" Command="{x:Static core:Commands.ToolLineCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Line}}" InputGestureText="L"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolArc}" Command="{x:Static core:Commands.ToolArcCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Arc}}" InputGestureText="A"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolBezier}" Command="{x:Static core:Commands.ToolBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Bezier}}" InputGestureText="B"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolQBezier}" Command="{x:Static core:Commands.ToolQBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.QBezier}}" InputGestureText="Q"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolPath}" Command="{x:Static core:Commands.ToolPathCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Path}}" InputGestureText="H"/>
            <MenuItem Header="{x:Static p:Resources.MenuPathTool}" IsEnabled="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Path}}">
                <MenuItem Header="{x:Static p:Resources.MenuPathToolLine}" Command="{x:Static core:Commands.ToolLineCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Line}}" InputGestureText="L"/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolArc}" Command="{x:Static core:Commands.ToolArcCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Arc}}" InputGestureText="A"/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolBezier}" Command="{x:Static core:Commands.ToolBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Bezier}}" InputGestureText="B"/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolQBezier}" Command="{x:Static core:Commands.ToolQBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.QBezier}}" InputGestureText="Q"/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolMove}" Command="{x:Static core:Commands.ToolMoveCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Move}}" InputGestureText="M"/>
            </MenuItem>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolRectangle}" Command="{x:Static core:Commands.ToolRectangleCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Rectangle}}" InputGestureText="R"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolEllipse}" Command="{x:Static core:Commands.ToolEllipseCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Ellipse}}" InputGestureText="E"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolText}" Command="{x:Static core:Commands.ToolTextCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Text}}" InputGestureText="T"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolImage}" Command="{x:Static core:Commands.ToolImageCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Image}}" InputGestureText="I"/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuData}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuDataImport}" Command="{x:Static core:Commands.ImportDataCommand}" InputGestureText=""/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuDataExport}" Command="{x:Static core:Commands.ExportDataCommand}" InputGestureText=""/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuTemplate}" Tag="{Binding}" ItemsSource="{Binding Editor.Project.Templates}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem.ItemContainerStyle>
                <Style TargetType="MenuItem">
                    <Setter Property="Header" Value="{Binding Name}"/>
                    <Setter Property="Command" Value="{Binding Path=Tag.Commands.ApplyTemplateCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type MenuItem}}}"/>
                    <Setter Property="CommandParameter" Value="{Binding}"/>
                    <Setter Property="IsCheckable" Value="True"/>
                    <Setter Property="IsChecked" Value="False"/>
                    <Style.Triggers>
                        <DataTrigger Value="True">
                            <DataTrigger.Binding>
                                <MultiBinding Converter="{StaticResource ObjectEqualityConverter}">
                                    <Binding Path="Tag.Editor.Project.CurrentContainer.Template" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type MenuItem}}"/>
                                    <Binding Path="DataContext" RelativeSource="{RelativeSource Self}"/>
                                </MultiBinding>
                            </DataTrigger.Binding>
                            <Setter Property="IsChecked" Value="True"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </MenuItem.ItemContainerStyle>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuOptions}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsStroked}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsStroked, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsStrokedCommand}" InputGestureText="K"/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsFilled}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsFilled, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsFilledCommand}" InputGestureText="F"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsClosed}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsClosed, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsClosedCommand}" InputGestureText="D"/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsSmoothJoin}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsSmoothJoin, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsSmoothJoinCommand}" InputGestureText="J"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsSnapToGrid}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.SnapToGrid, Mode=OneWay}" Command="{x:Static core:Commands.SnapToGridCommand}" InputGestureText="G"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsTryToConnect}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.TryToConnect, Mode=OneWay}" Command="{x:Static core:Commands.TryToConnectCommand}" InputGestureText="C"/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuWindow}">
            <MenuItem Header="{x:Static p:Resources.MenuWindowLoadLayout}" Command="{x:Static core:Commands.LoadWindowLayoutCommand}" InputGestureText=""/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuWindowSaveLayout}" Command="{x:Static core:Commands.SaveWindowLayoutCommand}" InputGestureText=""/><commit_msg>Hide windows manu in dashboard view<commit_after><!-- Copyright (c) <NAME>. All rights reserved. -->
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
<UserControl x:Class="Core2D.UI.Wpf.Controls.MenuControl" 
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:core="clr-namespace:Core2D;assembly=Core2D" 
             xmlns:controls="clr-namespace:Core2D.UI.Wpf.Controls" 
             xmlns:p="clr-namespace:Core2D.UI.Wpf.Properties" 
             mc:Ignorable="d" 
             d:DesignHeight="20" d:DesignWidth="1324">
    <UserControl.Resources>
        <Style x:Key="MenuItemVisibilityStyle" TargetType="MenuItem">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Editor.Project}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
        <Style x:Key="SeparatorVisibilityStyle" TargetType="Separator">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Editor.Project}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>
    <Menu Background="Transparent">
        <MenuItem Header="{x:Static p:Resources.MenuFile}">
            <MenuItem Header="{x:Static p:Resources.MenuFileNew}" Command="{x:Static core:Commands.NewCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+N"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuFileOpen}" Command="{x:Static core:Commands.OpenCommand}" InputGestureText="Ctrl+O"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuFileClose}" Command="{x:Static core:Commands.CloseCommand}" InputGestureText="Ctrl+F4" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <Separator Style="{StaticResource SeparatorVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileSave}" Command="{x:Static core:Commands.SaveCommand}" InputGestureText="Ctrl+S" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileSaveAs}" Command="{x:Static core:Commands.SaveAsCommand}" InputGestureText="Ctrl+Shift+S" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <Separator Style="{StaticResource SeparatorVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileExport}" Command="{x:Static core:Commands.ExportCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText="Ctrl+E" Style="{StaticResource MenuItemVisibilityStyle}"/>
            <Separator Style="{StaticResource SeparatorVisibilityStyle}"/>
            <MenuItem Header="{x:Static p:Resources.MenuFileRecent}" ItemsSource="{Binding RecentProjects}">
                <MenuItem.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" ToolTip="{Binding Path}"/>
                    </DataTemplate>
                </MenuItem.ItemTemplate>
                <MenuItem.ItemContainerStyle>
                    <Style TargetType="MenuItem">
                        <Setter Property="Command" Value="{x:Static core:Commands.OpenCommand}"/>
                        <Setter Property="CommandParameter" Value="{Binding Path}"/>
                    </Style>
                </MenuItem.ItemContainerStyle>
            </MenuItem>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuFileExit}" Command="{x:Static core:Commands.ExitCommand}" InputGestureText="Alt+F4"/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuEdit}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuEditUndo}" Command="{x:Static core:Commands.UndoCommand}" InputGestureText="Ctrl+Z"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditRedo}" Command="{x:Static core:Commands.RedoCommand}" InputGestureText="Ctrl+Y"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditCopyAsEmf}" Command="{x:Static core:Commands.CopyAsEmfCommand}" InputGestureText="Ctrl+Shift+C"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditCut}" Command="{x:Static core:Commands.CutCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+X"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditCopy}" Command="{x:Static core:Commands.CopyCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+C"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditPaste}" Command="{x:Static core:Commands.PasteCommand}" CommandParameter="{Binding}" InputGestureText="Ctrl+V"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditDelete}" Command="{x:Static core:Commands.DeleteCommand}" CommandParameter="{Binding}" InputGestureText="Del"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditSelectAll}" Command="{x:Static core:Commands.SelectAllCommand}" InputGestureText="Ctrl+A"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditDeselectAll}" Command="{x:Static core:Commands.DeselectAllCommand}" InputGestureText="Esc"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditClearAll}" Command="{x:Static core:Commands.ClearAllCommand}" InputGestureText=""/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditGroup}" Command="{x:Static core:Commands.GroupCommand}" InputGestureText="Ctrl+G"/>
            <MenuItem Header="{x:Static p:Resources.MenuEditUngroup}" Command="{x:Static core:Commands.UngroupCommand}" InputGestureText="Ctrl+U"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuEditOrder}">
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderSendToBack}" Command="{x:Static core:Commands.SendToBackCommand}" InputGestureText="Shift+-"/>
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderSendBackward}" Command="{x:Static core:Commands.SendBackwardCommand}" InputGestureText="-"/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderBringForward}" Command="{x:Static core:Commands.BringForwardCommand}" InputGestureText="+"/>
                <MenuItem Header="{x:Static p:Resources.MenuEditOrderBringToFront}" Command="{x:Static core:Commands.BringToFrontCommand}" InputGestureText="Shift++"/>
            </MenuItem>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuView}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuViewZoomReset}" Command="{x:Static core:Commands.ZoomResetCommand}" InputGestureText="Z"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuViewZoomExtent}" Command="{x:Static core:Commands.ZoomExtentCommand}" InputGestureText="X"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuViewZoomAutofit}" IsCheckable="True" IsChecked="{Binding Editor.Renderers[0].State.EnableAutofit, Mode=TwoWay}" InputGestureText=""/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuProject}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuProjectSubMenuImport}">
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyle}" Command="{x:Static core:Commands.ImportStyleCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyles}" Command="{x:Static core:Commands.ImportStylesCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyleLibrary}" Command="{x:Static core:Commands.ImportStyleLibraryCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportStyleLibraries}" Command="{x:Static core:Commands.ImportStyleLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroup}" Command="{x:Static core:Commands.ImportGroupCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroups}" Command="{x:Static core:Commands.ImportGroupsCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroupLibrary}" Command="{x:Static core:Commands.ImportGroupLibraryCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportGroupLibraries}" Command="{x:Static core:Commands.ImportGroupLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportTemplate}" Command="{x:Static core:Commands.ImportTemplateCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectImportTemplates}" Command="{x:Static core:Commands.ImportTemplatesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
            </MenuItem>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuProjectSubMenuExport}">
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyle}" Command="{x:Static core:Commands.ExportStyleCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary.Selected}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyles}" Command="{x:Static core:Commands.ExportStylesCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyleLibrary}" Command="{x:Static core:Commands.ExportStyleLibraryCommand}" CommandParameter="{Binding Editor.Project.CurrentStyleLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportStyleLibraries}" Command="{x:Static core:Commands.ExportStyleLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroup}" Command="{x:Static core:Commands.ExportGroupCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary.Selected}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroups}" Command="{x:Static core:Commands.ExportGroupsCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroupLibrary}" Command="{x:Static core:Commands.ExportGroupLibraryCommand}" CommandParameter="{Binding Editor.Project.CurrentGroupLibrary}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportGroupLibraries}" Command="{x:Static core:Commands.ExportGroupLibrariesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportTemplate}" Command="{x:Static core:Commands.ExportTemplateCommand}" CommandParameter="{Binding Editor.Project.CurrentTemplate}" InputGestureText=""/>
                <MenuItem Header="{x:Static p:Resources.MenuProjectExportTemplates}" Command="{x:Static core:Commands.ExportTemplatesCommand}" CommandParameter="{Binding Editor.Project}" InputGestureText=""/>
            </MenuItem>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuTool}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuToolNone}" Command="{x:Static core:Commands.ToolNoneCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.None}}" InputGestureText="N"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolSelection}" Command="{x:Static core:Commands.ToolSelectionCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Selection}}" InputGestureText="S"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolPoint}" Command="{x:Static core:Commands.ToolPointCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Point}}" InputGestureText="P"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolLine}" Command="{x:Static core:Commands.ToolLineCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Line}}" InputGestureText="L"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolArc}" Command="{x:Static core:Commands.ToolArcCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Arc}}" InputGestureText="A"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolBezier}" Command="{x:Static core:Commands.ToolBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Bezier}}" InputGestureText="B"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolQBezier}" Command="{x:Static core:Commands.ToolQBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.QBezier}}" InputGestureText="Q"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolPath}" Command="{x:Static core:Commands.ToolPathCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Path}}" InputGestureText="H"/>
            <MenuItem Header="{x:Static p:Resources.MenuPathTool}" IsEnabled="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Path}}">
                <MenuItem Header="{x:Static p:Resources.MenuPathToolLine}" Command="{x:Static core:Commands.ToolLineCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Line}}" InputGestureText="L"/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolArc}" Command="{x:Static core:Commands.ToolArcCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Arc}}" InputGestureText="A"/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolBezier}" Command="{x:Static core:Commands.ToolBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Bezier}}" InputGestureText="B"/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolQBezier}" Command="{x:Static core:Commands.ToolQBezierCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.QBezier}}" InputGestureText="Q"/>
                <Separator/>
                <MenuItem Header="{x:Static p:Resources.MenuPathToolMove}" Command="{x:Static core:Commands.ToolMoveCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentPathTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:PathTool.Move}}" InputGestureText="M"/>
            </MenuItem>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolRectangle}" Command="{x:Static core:Commands.ToolRectangleCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Rectangle}}" InputGestureText="R"/>
            <MenuItem Header="{x:Static p:Resources.MenuToolEllipse}" Command="{x:Static core:Commands.ToolEllipseCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Ellipse}}" InputGestureText="E"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolText}" Command="{x:Static core:Commands.ToolTextCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Text}}" InputGestureText="T"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuToolImage}" Command="{x:Static core:Commands.ToolImageCommand}" IsCheckable="False" IsChecked="{Binding Path=Editor.CurrentTool, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static core:Tool.Image}}" InputGestureText="I"/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuData}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuDataImport}" Command="{x:Static core:Commands.ImportDataCommand}" InputGestureText=""/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuDataExport}" Command="{x:Static core:Commands.ExportDataCommand}" InputGestureText=""/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuTemplate}" Tag="{Binding}" ItemsSource="{Binding Editor.Project.Templates}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem.ItemContainerStyle>
                <Style TargetType="MenuItem">
                    <Setter Property="Header" Value="{Binding Name}"/>
                    <Setter Property="Command" Value="{Binding Path=Tag.Commands.ApplyTemplateCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type MenuItem}}}"/>
                    <Setter Property="CommandParameter" Value="{Binding}"/>
                    <Setter Property="IsCheckable" Value="True"/>
                    <Setter Property="IsChecked" Value="False"/>
                    <Style.Triggers>
                        <DataTrigger Value="True">
                            <DataTrigger.Binding>
                                <MultiBinding Converter="{StaticResource ObjectEqualityConverter}">
                                    <Binding Path="Tag.Editor.Project.CurrentContainer.Template" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type MenuItem}}"/>
                                    <Binding Path="DataContext" RelativeSource="{RelativeSource Self}"/>
                                </MultiBinding>
                            </DataTrigger.Binding>
                            <Setter Property="IsChecked" Value="True"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </MenuItem.ItemContainerStyle>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuOptions}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsStroked}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsStroked, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsStrokedCommand}" InputGestureText="K"/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsFilled}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsFilled, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsFilledCommand}" InputGestureText="F"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsClosed}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsClosed, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsClosedCommand}" InputGestureText="D"/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsDefaultIsSmoothJoin}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.DefaultIsSmoothJoin, Mode=OneWay}" Command="{x:Static core:Commands.DefaultIsSmoothJoinCommand}" InputGestureText="J"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsSnapToGrid}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.SnapToGrid, Mode=OneWay}" Command="{x:Static core:Commands.SnapToGridCommand}" InputGestureText="G"/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuOptionsTryToConnect}" IsCheckable="True" IsChecked="{Binding Editor.Project.Options.TryToConnect, Mode=OneWay}" Command="{x:Static core:Commands.TryToConnectCommand}" InputGestureText="C"/>
        </MenuItem>
        <MenuItem Header="{x:Static p:Resources.MenuWindow}" Style="{StaticResource MenuItemVisibilityStyle}">
            <MenuItem Header="{x:Static p:Resources.MenuWindowLoadLayout}" Command="{x:Static core:Commands.LoadWindowLayoutCommand}" InputGestureText=""/>
            <Separator/>
            <MenuItem Header="{x:Static p:Resources.MenuWindowSaveLayout}" Command="{x:Static core:Commands.SaveWindowLayoutCommand}" InputGestureText=""/>
{'fraction_non_alphanumeric': 0.1356858956059641, 'fraction_numerical': 0.0013175519884055424, 'mean_word_length': 4.476190476190476, 'pattern_counts': {'":': 0, '<': 385, '<?xml version=': 0, '>': 385, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 16}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2257674', 'n_tokens_mistral': 11962, 'n_tokens_neox': 11277, 'n_words': 1818}