private void FixableInput_MouseDown(object sender, MouseButtonEventArgs e) {
if (e.ChangedButton != MouseButton.Right) return;
var textBox = sender as TextBox;
if (textBox == null) return;
var contextMenu = new ContextMenu();
MenuItem item;
var mask = GetTextBoxMask(textBox);
if (mask == null) return;
if (!Regex.IsMatch(textBox.Text, @"^" + mask.Replace(@"…", @"-?\d+(?:\.\d+)?") + @"$")) {
item = new MenuItem { Header = AppStrings.CarSpecs_FixFormat };
item.Click += (s, e1) => FixValue(textBox);
item.ToolTip = AppStrings.CarSpecs_FixFormat_Tooltip;
contextMenu.Items.Add(item);
}
if (Equals(textBox, WeightInput)) {
item = new MenuItem { Header = AppStrings.CarSpecs_Recalculate };
item.Click += WeightRecalculate_OnClick;
item.ToolTip = AppStrings.CarSpecs_Recalculate_WeightTooltip;
contextMenu.Items.Add(item);
}
if (Equals(textBox, PwRatioInput)) {
item = new MenuItem { Header = AppStrings.CarSpecs_Recalculate };
item.Click += PwRatioRecalculate_OnClick;
item.ToolTip = AppStrings.CarSpecs_Recalculate_PwRatioTooltip;
contextMenu.Items.Add(item);
}
contextMenu.AddTextBoxItems();
e.Handled = true;
contextMenu.IsOpen = true;
}