예제 #1
0
파일: AxisStyle.cs 프로젝트: olesar/Altaxo
        /// <summary>
        /// Changes the style identifier.
        /// </summary>
        /// <param name="newIdentifier">The new identifier.</param>
        /// <param name="GetNewAxisSideFromOldAxisSide">Functions that uses the old axis side as parameter1, and returns the corresponding axis side of the new coordinate system, or null if no such side could be found.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        public void ChangeStyleIdentifier(CSLineID newIdentifier, Func <CSAxisSide, CSAxisSide?> GetNewAxisSideFromOldAxisSide)
        {
            if (null == newIdentifier)
            {
                throw new ArgumentNullException(nameof(newIdentifier));
            }
            _styleID = newIdentifier;

            if (null != _axisLineStyle)
            {
                _axisLineStyle.ChangeTickPositionsWhenChangingCoordinateSystem(GetNewAxisSideFromOldAxisSide);
            }

            if (null != _majorLabelStyle && _majorLabelStyle.LabelSide.HasValue)
            {
                _majorLabelStyle.LabelSide = GetNewAxisSideFromOldAxisSide(_majorLabelStyle.LabelSide.Value);
            }

            if (null != _minorLabelStyle && _minorLabelStyle.LabelSide.HasValue)
            {
                _minorLabelStyle.LabelSide = GetNewAxisSideFromOldAxisSide(_minorLabelStyle.LabelSide.Value);
            }
        }