Index: Core/GIS/src/Core.GIS.SharpMap.UI/Forms/MapControl.cs =================================================================== diff -u -r65e7a9070fa66b5fcbf5c110d81b0b89ff18c39e -rf1b79a2ac089360959e54586e0f51161d520ecc8 --- Core/GIS/src/Core.GIS.SharpMap.UI/Forms/MapControl.cs (.../MapControl.cs) (revision 65e7a9070fa66b5fcbf5c110d81b0b89ff18c39e) +++ Core/GIS/src/Core.GIS.SharpMap.UI/Forms/MapControl.cs (.../MapControl.cs) (revision f1b79a2ac089360959e54586e0f51161d520ecc8) @@ -698,13 +698,6 @@ private void ToolsPropertyChanged(object sender, PropertyChangedEventArgs e) { - if (e.PropertyName != TypeUtils.GetMemberName(t => t.Visible) && - e.PropertyName != TypeUtils.GetMemberName(t => t.Anchor) && - e.PropertyName != TypeUtils.GetMemberName(t => t.UseAnchor)) - { - return; - } - tools.OfType().ForEach(t => t.SetScreenLocationForAnchor()); } Index: Core/GIS/src/Core.GIS.SharpMap.UI/Tools/Decorations/LayoutComponentTool.cs =================================================================== diff -u -r9f01c4daf5b7af6549045ed6ac404d18419c2555 -rf1b79a2ac089360959e54586e0f51161d520ecc8 --- Core/GIS/src/Core.GIS.SharpMap.UI/Tools/Decorations/LayoutComponentTool.cs (.../LayoutComponentTool.cs) (revision 9f01c4daf5b7af6549045ed6ac404d18419c2555) +++ Core/GIS/src/Core.GIS.SharpMap.UI/Tools/Decorations/LayoutComponentTool.cs (.../LayoutComponentTool.cs) (revision f1b79a2ac089360959e54586e0f51161d520ecc8) @@ -1,8 +1,9 @@ using System; +using System.ComponentModel; using System.Drawing; using System.Linq; using System.Windows.Forms; -using Core.Common.Utils.Aop; +using Core.Common.Utils; using Core.GIS.GeoAPI.Geometries; namespace Core.GIS.SharpMap.UI.Tools.Decorations @@ -11,8 +12,7 @@ /// A base class for layout-related components on a map such as a legend, scale bar or north arrow. /// It implements drag and drop moving of the component. /// - [Entity] - public abstract class LayoutComponentTool : MapTool + public abstract class LayoutComponentTool : MapTool, INotifyPropertyChange { private const int Margin = 5; @@ -27,6 +27,7 @@ private Size oldMapSize; // Store the 'old' size of the map to compare to changes in the map size private bool visible; private int backGroundTransparencyPercentage = 50; + private bool useAnchor; public LayoutComponentTool() { @@ -54,8 +55,12 @@ } set { + OnPropertyChanging("Anchor"); + anchor = value; UseAnchor = true; + + OnPropertyChanged("Anchor"); } } @@ -124,7 +129,9 @@ } set { + OnPropertyChanging("Visible"); visible = value; + OnPropertyChanged("Visible"); } } @@ -229,7 +236,19 @@ } } - public bool UseAnchor { get; set; } + public bool UseAnchor + { + get + { + return useAnchor; + } + set + { + OnPropertyChanging("UseAnchor"); + useAnchor = value; + OnPropertyChanged("UseAnchor"); + } + } public bool Selected { get; private set; } @@ -378,5 +397,29 @@ } #endregion + + #region INotifyPropertyChange + + public event PropertyChangingEventHandler PropertyChanging; + + protected void OnPropertyChanging(string propertyName) + { + if (PropertyChanging != null) + { + PropertyChanging(this, new PropertyChangingEventArgs(propertyName)); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void OnPropertyChanged(string propertyName) + { + if (PropertyChanged != null) + { + PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + + #endregion } } \ No newline at end of file Index: Core/GIS/src/Core.GIS.SharpMap.UI/Tools/Decorations/LegendTool.cs =================================================================== diff -u -r9f01c4daf5b7af6549045ed6ac404d18419c2555 -rf1b79a2ac089360959e54586e0f51161d520ecc8 --- Core/GIS/src/Core.GIS.SharpMap.UI/Tools/Decorations/LegendTool.cs (.../LegendTool.cs) (revision 9f01c4daf5b7af6549045ed6ac404d18419c2555) +++ Core/GIS/src/Core.GIS.SharpMap.UI/Tools/Decorations/LegendTool.cs (.../LegendTool.cs) (revision f1b79a2ac089360959e54586e0f51161d520ecc8) @@ -55,7 +55,9 @@ } set { + OnPropertyChanging("Padding"); padding = value; + OnPropertyChanged("Padding"); } } @@ -70,7 +72,9 @@ } set { + OnPropertyChanging("LegendFont"); legendFont = value; + OnPropertyChanged("LegendFont"); } }