private static void InjectControl(Control control, IViewModelWithRecipe viewModel) { var windowWrapper = VisualTreeHelperExtension.FindParentOfType(control, typeof(BaseUserControlWithWindow)); var window = ((BaseUserControlWithWindow)windowWrapper).Window; var controlRecipeBreakdown = new ControlRecipeBreakdown(); controlRecipeBreakdown.InheritedViewModel = viewModel; InjectedControls.Add(control, controlRecipeBreakdown); window.AddExtensionControl(controlRecipeBreakdown); }
private static void ShowContextDetails() { var hitTestResult = Api.Client.UI.GetVisualInPointedPosition(); if (hitTestResult == null) { return; } if (VisualTreeHelperExtension.FindParentOfType( hitTestResult, typeof(ItemSlotControl)) is ItemSlotControl itemSlotControl) { if (itemSlotControl.Item != null) { WindowCNEIdetails.Open( EntityViewModelsManager.GetEntityViewModel(itemSlotControl.Item.ProtoItem)); } return; } if (VisualTreeHelperExtension.FindParentOfType( hitTestResult, typeof(RequiredItemControl)) is RequiredItemControl requiredItemControl) { if (requiredItemControl.ProtoItemWithCount != null) { WindowCNEIdetails.Open( EntityViewModelsManager.GetEntityViewModel(requiredItemControl.ProtoItemWithCount.ProtoItem)); } return; } if (VisualTreeHelperExtension.FindParentOfType( hitTestResult, typeof(EntitySlotControl)) is EntitySlotControl entitySlotControl) { if (entitySlotControl.DataContext is ProtoEntityViewModel entityViewModel) { WindowCNEIdetails.Open(entityViewModel); } else { Api.Logger.Error("CNEI: Wrong view model for details window " + entitySlotControl.DataContext); } } }
public static void Init() { if (isInitialized) { return; } isInitialized = true; // ReSharper disable once CanExtractXamlLocalizableStringCSharp ClientInputContext.Start("Container sort helper") .HandleButtonDown( GameButton.ContainerSort, () => { var hitTestResult = Api.Client.UI.GetVisualInPointedPosition(); if (hitTestResult == null) { return; } var itemSlotControl = VisualTreeHelperExtension.FindParentOfType( hitTestResult, typeof(ItemSlotControl)) as ItemSlotControl; if (itemSlotControl != null) { SortItems((IClientItemsContainer)itemSlotControl.Container); return; } var itemsContainerControl = VisualTreeHelperExtension.FindParentOfType( hitTestResult, typeof(ItemsContainerControl)) as ItemsContainerControl; if (itemsContainerControl != null) { SortItems(itemsContainerControl.Container); } }); }