Beispiel #1
0
        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} используемых символов.");
            }
        }
Beispiel #2
0
 public TextSpinner(ISpinnerTemplate template)
 {
     this.template = template;
 }