7 changed files with 170 additions and 0 deletions
@ -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> |
||||||
@ -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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -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(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue