Browse Source

Do not change alignment while moving inside grid, only decide alignments when changing the container.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/wpfdesigner@6285 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Kumar Devvrat 15 years ago
parent
commit
a6dbf4a1e3
  1. 17
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/GridPlacementSupport.cs

17
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/GridPlacementSupport.cs

@ -25,6 +25,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -25,6 +25,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
public sealed class GridPlacementSupport : SnaplinePlacementBehavior
{
Grid grid;
private bool enteredIntoNewContainer;
protected override void OnInitialized()
{
@ -145,12 +146,19 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -145,12 +146,19 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
return VerticalAlignment.Top;
}
public override void EnterContainer(PlacementOperation operation)
{
enteredIntoNewContainer=true;
base.EnterContainer(operation);
}
GrayOutDesignerExceptActiveArea grayOut;
public override void EndPlacement(PlacementOperation operation)
{
GrayOutDesignerExceptActiveArea.Stop(ref grayOut);
base.EndPlacement(operation);
enteredIntoNewContainer=false;
base.EndPlacement(operation);
}
public override void SetPosition(PlacementInformation info)
@ -180,9 +188,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -180,9 +188,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
HorizontalAlignment ha = (HorizontalAlignment)info.Item.Properties[FrameworkElement.HorizontalAlignmentProperty].ValueOnInstance;
VerticalAlignment va = (VerticalAlignment)info.Item.Properties[FrameworkElement.VerticalAlignmentProperty].ValueOnInstance;
ha = SuggestHorizontalAlignment(info.Bounds, availableSpaceRect);
va = SuggestVerticalAlignment(info.Bounds, availableSpaceRect);
if(enteredIntoNewContainer){
ha = SuggestHorizontalAlignment(info.Bounds, availableSpaceRect);
va = SuggestVerticalAlignment(info.Bounds, availableSpaceRect);
}
info.Item.Properties[FrameworkElement.HorizontalAlignmentProperty].SetValue(ha);
info.Item.Properties[FrameworkElement.VerticalAlignmentProperty].SetValue(va);

Loading…
Cancel
Save