using HarmonyLib; using System.Reflection; using Telerik.WinControls; using Telerik.WinControls.UI; namespace Pilz.UI.Telerik.Patches.TelerikUiForWinForms; [HarmonyPatch(typeof(RadTextBoxControl))] [HarmonyPatch("ProcessAutoSizeChanged")] internal class RadTextBoxControl_PreventAutoStretchOnAutoSize { private static readonly MethodInfo m_get_RootElement = AccessTools.PropertyGetter(typeof(RadControl), nameof(RadControl.RootElement)); public static IEnumerable Transpiler(IEnumerable instructions) { var ignored = 0; var ignoring = false; int getRootelementCallcount = 0; foreach (var instruction in instructions) { if (instruction.Calls(m_get_RootElement)) { getRootelementCallcount += 1; if (getRootelementCallcount == 2) ignoring = true; } if (ignoring) { if (ignored >= 4) ignoring = false; else { ignored += 1; continue; } } yield return instruction; } } }