void CreateTextSpinner() { ISpinnerTemplate timeOfDaySpinner = DateTime.Now.TimeOfDay <new TimeSpan(6, 30, 0) || DateTime.Now.TimeOfDay> new TimeSpan(18, 30, 0) ? (ISpinnerTemplate) new SpinnerTemplateMoon() : new SpinnerTemplateClock(); var whishList = new ISpinnerTemplate[] { timeOfDaySpinner, new SpinnerTemplateDotsScrolling() }; foreach (var spinner in whishList) { var allChars = String.Join("", spinner.Frames); var layout = labelTotalRow.CreatePangoLayout(allChars); //К сожалению этот способ определения неподдерживаемых символов на винде для нецветных спинеров все равно возваращает 0, даже если символ не поддежривается. if (layout.UnknownGlyphsCount == 0) { CountingTextSpinner = new TextSpinner(spinner); break; } logger.Debug($"Спинер {spinner.GetType()} пропущен, так как используемый шрифт не поддеживает {layout.UnknownGlyphsCount} из {new StringInfo(allChars).LengthInTextElements} используемых символов."); } }
public TextSpinner(ISpinnerTemplate template) { this.template = template; }