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; }