private void Driver_OnContextMenuButtonClick(object sender, ContextMenuButtonEventArgs e) { var driver = ((FrameworkElement)sender).DataContext as ServerEntry.CurrentDriver; if (driver == null) { return; } var menu = new ContextMenu(); foreach (var tag in ServerEntry.DriverTag.GetTags().OrderBy(x => x.DisplayName)) { var icon = TryFindResource(@"PlayerTagIcon") as Shape; icon?.SetBinding(Shape.FillProperty, new Binding { Source = tag, Path = new PropertyPath(nameof(tag.Color)), Converter = ColorPicker.ColorToBrushConverter }); var header = new BbCodeBlock(); header.SetBinding(BbCodeBlock.BbCodeProperty, new Binding { Source = tag, Path = new PropertyPath(nameof(tag.DisplayName)) }); var item = new MenuItem { Header = icon == null ? (FrameworkElement)header : new DockPanel { Children = { icon, header } }, IsChecked = driver.Tags.GetByIdOrDefault(tag.Id) != null, StaysOpenOnClick = true, IsCheckable = true }; item.Click += (o, args) => { (((MenuItem)o).IsChecked ? driver.AddTagCommand : driver.RemoveTagCommand).Execute(tag.Id); }; menu.Items.Add(item); } menu.AddSeparator(); menu.Items.Add(new MenuItem { Header = "New Tag…", Command = new DelegateCommand(() => { new OnlineNewDriverTag(driver).ShowDialog(); }) }); menu.Items.Add(new MenuItem { Header = "Edit Tags…", Command = new DelegateCommand(() => { new OnlineDriverTags().ShowDialog(); }) }); e.Menu = menu; }
private void SelectedTrackContextMenuButton_OnClick(object sender, ContextMenuButtonEventArgs e) { e.Menu = new ContextMenu() .AddItem("Change track to random", Model.RandomTrackCommand, @"Ctrl+Alt+2") .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData")) .AddSeparator() .AddItem("Open track in Content tab", () => { TracksListPage.Show(Model.SelectedTrack); }, isEnabled: AppKeyHolder.IsAllRight); }
private void OnPowerGraphContextMenuClick(object sender, ContextMenuButtonEventArgs e) { e.Menu = new ContextMenu() .AddItem(AppStrings.CarSpecs_ScaleCurvesToPowerTorqueHeader, _model.ScaleCurvesCommand, toolTip: AppStrings.CarSpecs_ScaleCurvesToPowerTorque_Tooltip) .AddItem(AppStrings.CarSpecs_RecalculateCurvesUsingDataAndPowerTorqueHeader, _model.RecalculateAndScaleCurvesCommand, toolTip: AppStrings.CarSpecs_RecalculateCurvesUsingDataAndPowerTorque_Tooltip) .AddItem(AppStrings.CarSpecs_RecalculateCurvesUsingDataOnlyHeader, _model.RecalculateCurvesCommand, toolTip: AppStrings.CarSpecs_RecalculateCurvesUsingDataOnly_Tooltip); }
private void SelectedCarContextMenuButton_OnClick(object sender, ContextMenuButtonEventArgs e) { e.Menu = new ContextMenu() .AddItem("Change car to random", Model.RandomCarCommand, @"Ctrl+Alt+1") .AddItem("Change skin to random", Model.RandomCarSkinCommand, @"Ctrl+Alt+R") .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData")) .AddSeparator() .AddItem("Open car in Content tab", () => { CarsListPage.Show(Model.SelectedCar, Model.SelectedCar.SelectedSkin?.Id); }); }
private void ConditionsContextMenuButton_OnClick(object sender, ContextMenuButtonEventArgs e) { if (Model.RealConditions) { e.Menu = (TryFindResource(@"RealConditionsContextMenu") as ContextMenu)? .AddSeparator() .AddItem("Set random time", Model.RandomTimeCommand, @"Ctrl+Alt+3") .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData")); } else { e.Menu = new ContextMenu() .AddItem("Set random time", Model.RandomTimeCommand, @"Ctrl+Alt+3") .AddItem("Set random weather", Model.RandomWeatherCommand, @"Ctrl+Alt+4") .AddItem("Set random temperature", Model.RandomTemperatureCommand, @"Ctrl+Alt+5") .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData")); } }