コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: suconbu/dentacs
        void ConvertItemClicked(TextBox target, int radix)
        {
            this.calculator.Reset();

            var lines          = LineString.Split(target.Text).ToArray();
            var selectionStart = target.SelectionStart;
            var selectionEnd   = target.SelectionStart + target.SelectionLength;

            TextBoxHelper.GetStartEndLineIndex(lines, selectionStart, selectionEnd,
                                               out var lineIndexStart, out var lineIndexEnd);

            for (int i = lineIndexStart; i <= lineIndexEnd; i++)
            {
                if (this.calculator.Calculate(lines[i].Text))
                {
                    if (decimal.TryParse(this.calculator.Result, out var value))
                    {
                        lines[i].Text = ResultConvertHelper.ConvertToResultString(value, radix, ResultConvertHelper.Styles.Prefix);
                    }
                }
            }

            target.Text            = LineString.Join(lines);
            target.SelectionStart  = TextBoxHelper.GetCharacterIndexOfLineStartFromLineIndex(lines, lineIndexStart);
            target.SelectionLength = TextBoxHelper.GetCharacterIndexOfLineEndFromLineIndex(lines, lineIndexEnd) - target.SelectionStart;
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: suconbu/dentacs
 string GetResultTextForCopy(TextBox textBox)
 {
     if (textBox == null)
     {
         return(null);
     }
     if (!int.TryParse((string)textBox.Tag, out var radix))
     {
         return(null);
     }
     if (!decimal.TryParse(this.RxResult.Value, out var number))
     {
         return(null);
     }
     return(ResultConvertHelper.ConvertToResultString(number, radix, ResultConvertHelper.Styles.Prefix));
 }
コード例 #3
0
ファイル: ResultConverter.cs プロジェクト: suconbu/dentacs
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null || parameter == null)
            {
                return(null);
            }

            int radix = int.Parse((string)parameter);

            if (!decimal.TryParse(value.ToString(), out var number))
            {
                return((radix == 10) ? value.ToString() : ResultConverter.InvalidValueString);
            }

            return(ResultConvertHelper.ConvertToResultString(
                       number, radix, ResultConvertHelper.Styles.Separator));
        }