Browse Source

Support for "Bring Item To Front / Send To Back" ContextMenu ...

pull/81/head
jkuehner 12 years ago
parent
commit
cff88a4151
  1. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RightClickContextMenu.xaml
  2. 63
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RightClickContextMenu.xaml.cs
  3. 38
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RightClickContextMenuExtension.cs
  4. 24
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Translations.cs
  5. 6
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RightClickContextMenu.xaml

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
<ContextMenu x:Class="ICSharpCode.WpfDesign.Designer.Extensions.RightClickContextMenu"
xmlns="http://schemas.microsoft.com/netfx/2007/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Translation="clr-namespace:ICSharpCode.WpfDesign.Designer"
>
<MenuItem Header="{Binding SendToFrontText, Source={x:Static Translation:Translations.Instance}}" Click="Click_BringToFront" />
<MenuItem Header="{Binding SendForward, Source={x:Static Translation:Translations.Instance}}" Click="Click_Forward" />
<MenuItem Header="{Binding SendBackward, Source={x:Static Translation:Translations.Instance}}" Click="Click_Backward" />
<MenuItem Header="{Binding SendToBack, Source={x:Static Translation:Translations.Instance}}" Click="Click_SendToBack" />
</ContextMenu>

63
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RightClickContextMenu.xaml.cs

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ICSharpCode.WpfDesign.PropertyGrid;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
public partial class RightClickContextMenu
{
private DesignItem designItem;
public RightClickContextMenu(DesignItem designItem)
{
this.designItem = designItem;
InitializeComponent();
}
void Click_BringToFront(object sender, RoutedEventArgs e)
{
var collection = this.designItem.ParentProperty.CollectionElements;
collection.Remove(this.designItem);
collection.Add(this.designItem);
}
void Click_SendToBack(object sender, RoutedEventArgs e)
{
var collection = this.designItem.ParentProperty.CollectionElements;
collection.Remove(this.designItem);
collection.Insert(0, this.designItem);
}
void Click_Backward(object sender, RoutedEventArgs e)
{
var collection = this.designItem.ParentProperty.CollectionElements;
var idx = collection.IndexOf(this.designItem);
collection.RemoveAt(idx);
collection.Insert((--idx < 0 ? 0: idx), this.designItem);
}
void Click_Forward(object sender, RoutedEventArgs e)
{
var collection = this.designItem.ParentProperty.CollectionElements;
var idx = collection.IndexOf(this.designItem);
collection.RemoveAt(idx);
var cnt = collection.Count;
collection.Insert((++idx > cnt ? cnt : idx), this.designItem);
}
}
}

38
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RightClickContextMenuExtension.cs

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Extensions;
using ICSharpCode.WpfDesign.Designer;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
/// <summary>
///
/// </summary>
[ExtensionFor(typeof(UIElement))]
public sealed class RightClickContextMenuExtension : PrimarySelectionAdornerProvider
{
DesignPanel panel;
protected override void OnInitialized()
{
base.OnInitialized();
panel = ExtendedItem.Context.Services.DesignPanel as DesignPanel;
panel.ContextMenu = new RightClickContextMenu(ExtendedItem);
}
protected override void OnRemove()
{
panel.ContextMenu = null;
base.OnRemove();
}
}
}

24
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Translations.cs

@ -21,6 +21,30 @@ namespace ICSharpCode.WpfDesign.Designer @@ -21,6 +21,30 @@ namespace ICSharpCode.WpfDesign.Designer
}
}
public virtual string SendToFrontText {
get {
return "Bring to front";
}
}
public virtual string SendForward {
get {
return "Forward";
}
}
public virtual string SendBackward {
get {
return "Backward";
}
}
public virtual string SendToBack {
get {
return "Send to back";
}
}
public virtual string PressAltText {
get {
return "Press \"Alt\" to Enter Container";

6
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj

@ -80,7 +80,12 @@ @@ -80,7 +80,12 @@
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Controls\RenderTransformOriginThumb.cs" />
<Compile Include="Extensions\RightClickContextMenu.xaml.cs">
<DependentUpon>RightClickContextMenu.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Extensions\RenderTransformOriginExtension.cs" />
<Compile Include="Extensions\RightClickContextMenuExtension.cs" />
<Compile Include="PropertyGrid\Editors\FlatCollectionEditor.xaml.cs">
<DependentUpon>FlatCollectionEditor.xaml</DependentUpon>
<SubType>Code</SubType>
@ -242,6 +247,7 @@ @@ -242,6 +247,7 @@
<Resource Include="Images\Tag.png" />
</ItemGroup>
<ItemGroup>
<Page Include="Extensions\RightClickContextMenu.xaml" />
<Page Include="PropertyGrid\Editors\FlatCollectionEditor.xaml" />
<Page Include="ThumbnailView\ThumbnailView.xaml" />
<ProjectReference Include="..\..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">

Loading…
Cancel
Save