|
@@ -9,6 +9,8 @@
|
|
d:DesignHeight="60" d:DesignWidth="250" Name="layerStructureContainer">
|
|
d:DesignHeight="60" d:DesignWidth="250" Name="layerStructureContainer">
|
|
<UserControl.Resources>
|
|
<UserControl.Resources>
|
|
<converters:IndexOfConverter x:Key="IndexOfConverter"/>
|
|
<converters:IndexOfConverter x:Key="IndexOfConverter"/>
|
|
|
|
+ <converters:LayersCountToVisiblityConverter x:Key="LayersCountToVisiblityConverter"/>
|
|
|
|
+ <converters:ILayerContainerToLayersConverter x:Key="ILayerContainerToLayersConverter"/>
|
|
</UserControl.Resources>
|
|
</UserControl.Resources>
|
|
<ItemsControl Name="itemsControl" ItemsSource="{Binding Item.Children, ElementName=layerStructureContainer}" AlternationCount="9999">
|
|
<ItemsControl Name="itemsControl" ItemsSource="{Binding Item.Children, ElementName=layerStructureContainer}" AlternationCount="9999">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsControl.ItemsPanel>
|
|
@@ -18,7 +20,11 @@
|
|
</ItemsControl.ItemsPanel>
|
|
</ItemsControl.ItemsPanel>
|
|
<ItemsControl.ItemTemplate>
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<DataTemplate>
|
|
- <vws:LayerItem Tag="{Binding ElementName=layerStructureContainer}"
|
|
|
|
|
|
+ <Grid>
|
|
|
|
+ <ItemsControl Visibility="{Binding Converter={StaticResource LayersCountToVisiblityConverter}, ConverterParameter='equalsOne'}" ItemsSource="{Binding Converter={StaticResource ILayerContainerToLayersConverter}}">
|
|
|
|
+ <ItemsControl.ItemTemplate>
|
|
|
|
+ <DataTemplate>
|
|
|
|
+ <vws:LayerItem Tag="{Binding ElementName=layerStructureContainer}"
|
|
SetActiveLayerCommand="{Binding LayerCommandsViewModel.SetActiveLayerCommand, ElementName=layerStructureContainer}"
|
|
SetActiveLayerCommand="{Binding LayerCommandsViewModel.SetActiveLayerCommand, ElementName=layerStructureContainer}"
|
|
LayerName="{Binding Name, Mode=TwoWay}"
|
|
LayerName="{Binding Name, Mode=TwoWay}"
|
|
IsActive="{Binding IsActive, Mode=TwoWay}"
|
|
IsActive="{Binding IsActive, Mode=TwoWay}"
|
|
@@ -27,81 +33,86 @@
|
|
LayerColor="{Binding LayerHighlightColor}"
|
|
LayerColor="{Binding LayerHighlightColor}"
|
|
MoveToBackCommand="{Binding LayerCommandsViewModel.MoveToBackCommand, ElementName=layerStructureContainer}"
|
|
MoveToBackCommand="{Binding LayerCommandsViewModel.MoveToBackCommand, ElementName=layerStructureContainer}"
|
|
MoveToFrontCommand="{Binding LayerCommandsViewModel.MoveToFrontCommand, ElementName=layerStructureContainer}">
|
|
MoveToFrontCommand="{Binding LayerCommandsViewModel.MoveToFrontCommand, ElementName=layerStructureContainer}">
|
|
- <vws:LayerItem.LayerIndex>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="ContainerIndex" ElementName="layerStructureContainer" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </vws:LayerItem.LayerIndex>
|
|
|
|
- <vws:LayerItem.ContextMenu>
|
|
|
|
- <ContextMenu>
|
|
|
|
- <MenuItem Header="Delete"
|
|
|
|
|
|
+ <vws:LayerItem.LayerIndex>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="ContainerIndex" ElementName="layerStructureContainer" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </vws:LayerItem.LayerIndex>
|
|
|
|
+ <vws:LayerItem.ContextMenu>
|
|
|
|
+ <ContextMenu>
|
|
|
|
+ <MenuItem Header="Delete"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.DeleteLayersCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.DeleteLayersCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
- <MenuItem.CommandParameter>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </MenuItem.CommandParameter>
|
|
|
|
- </MenuItem>
|
|
|
|
- <MenuItem Header="Rename"
|
|
|
|
|
|
+ <MenuItem.CommandParameter>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </MenuItem.CommandParameter>
|
|
|
|
+ </MenuItem>
|
|
|
|
+ <MenuItem Header="Rename"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.RenameLayerCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.RenameLayerCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
- <MenuItem.CommandParameter>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </MenuItem.CommandParameter>
|
|
|
|
- </MenuItem>
|
|
|
|
- <MenuItem Header="Move to front"
|
|
|
|
|
|
+ <MenuItem.CommandParameter>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </MenuItem.CommandParameter>
|
|
|
|
+ </MenuItem>
|
|
|
|
+ <MenuItem Header="Move to front"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MoveToFrontCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MoveToFrontCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
- <MenuItem.CommandParameter>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </MenuItem.CommandParameter>
|
|
|
|
- </MenuItem>
|
|
|
|
- <MenuItem Header="Move to back"
|
|
|
|
|
|
+ <MenuItem.CommandParameter>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </MenuItem.CommandParameter>
|
|
|
|
+ </MenuItem>
|
|
|
|
+ <MenuItem Header="Move to back"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MoveToBackCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MoveToBackCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
- <MenuItem.CommandParameter>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </MenuItem.CommandParameter>
|
|
|
|
- </MenuItem>
|
|
|
|
- <Separator/>
|
|
|
|
- <MenuItem Header="Merge selected"
|
|
|
|
|
|
+ <MenuItem.CommandParameter>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </MenuItem.CommandParameter>
|
|
|
|
+ </MenuItem>
|
|
|
|
+ <Separator/>
|
|
|
|
+ <MenuItem Header="Merge selected"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MergeSelectedCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MergeSelectedCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
|
|
- <MenuItem Header="Merge with above"
|
|
|
|
|
|
+ <MenuItem Header="Merge with above"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MergeWithAboveCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MergeWithAboveCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
- <MenuItem.CommandParameter>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </MenuItem.CommandParameter>
|
|
|
|
- </MenuItem>
|
|
|
|
- <MenuItem Header="Merge with below"
|
|
|
|
|
|
+ <MenuItem.CommandParameter>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </MenuItem.CommandParameter>
|
|
|
|
+ </MenuItem>
|
|
|
|
+ <MenuItem Header="Merge with below"
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MergeWithBelowCommand,
|
|
Command="{Binding PlacementTarget.Tag.LayerCommandsViewModel.MergeWithBelowCommand,
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}">
|
|
- <MenuItem.CommandParameter>
|
|
|
|
- <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
- <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
- <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
- </MultiBinding>
|
|
|
|
- </MenuItem.CommandParameter>
|
|
|
|
- </MenuItem>
|
|
|
|
- </ContextMenu>
|
|
|
|
- </vws:LayerItem.ContextMenu>
|
|
|
|
- </vws:LayerItem>
|
|
|
|
|
|
+ <MenuItem.CommandParameter>
|
|
|
|
+ <MultiBinding Converter="{StaticResource IndexOfConverter}">
|
|
|
|
+ <Binding Path="PlacementTarget.Tag.ContainerIndex" RelativeSource="{RelativeSource AncestorType=ContextMenu}" />
|
|
|
|
+ <Binding Path="(ItemsControl.AlternationIndex)" RelativeSource="{RelativeSource TemplatedParent}"/>
|
|
|
|
+ </MultiBinding>
|
|
|
|
+ </MenuItem.CommandParameter>
|
|
|
|
+ </MenuItem>
|
|
|
|
+ </ContextMenu>
|
|
|
|
+ </vws:LayerItem.ContextMenu>
|
|
|
|
+ </vws:LayerItem>
|
|
|
|
+ </DataTemplate>
|
|
|
|
+ </ItemsControl.ItemTemplate>
|
|
|
|
+ </ItemsControl>
|
|
|
|
+ <local:LayerStructureItemContainer Margin="20 0 0 0" Item="{Binding}" Visibility="{Binding Converter={StaticResource LayersCountToVisiblityConverter}}"/>
|
|
|
|
+ </Grid>
|
|
</DataTemplate>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ItemsControl>
|