public override void DoLayout()
        {
            if (_isCommon && _numerator == 2 && _denominator == 2)
            {
                var common = new MusicFontGlyph(0, CommonY, CommonScale, MusicFontSymbol.TimeSignatureCutCommon);
                common.Width = 14 * Scale;
                AddGlyph(common);
                base.DoLayout();
            }
            else if (_isCommon && _numerator == 4 && _denominator == 4)
            {
                var common = new MusicFontGlyph(0, CommonY, CommonScale, MusicFontSymbol.TimeSignatureCommon);
                common.Width = 14 * Scale;
                AddGlyph(common);
                base.DoLayout();
            }
            else
            {
                var numerator   = new NumberGlyph(0, NumeratorY, _numerator, NumberScale);
                var denominator = new NumberGlyph(0, DenominatorY, _denominator, NumberScale);

                AddGlyph(numerator);
                AddGlyph(denominator);

                base.DoLayout();

                for (int i = 0, j = Glyphs.Count; i < j; i++)
                {
                    var g = Glyphs[i];
                    g.X = (Width - g.Width) / 2;
                }
            }
        }
示例#2
0
        public override void DoLayout()
        {
            var renderer = (ScoreBarRenderer)Renderer;

            if (_isCommon && _numerator == 2 && _denominator == 2)
            {
                var common = new MusicFontGlyph(0, renderer.GetScoreY(4), 1.0f, MusicFontSymbol.TimeSignatureCutCommon);
                common.Width = 14 * Scale;
                AddGlyph(common);
                base.DoLayout();
            }
            else if (_isCommon && _numerator == 4 && _denominator == 4)
            {
                var common = new MusicFontGlyph(0, renderer.GetScoreY(4), 1.0f, MusicFontSymbol.TimeSignatureCommon);
                common.Width = 14 * Scale;
                AddGlyph(common);
                base.DoLayout();
            }
            else
            {
                var numerator   = new NumberGlyph(0, 2 * Scale, _numerator);
                var denominator = new NumberGlyph(0, 20 * Scale, _denominator);

                AddGlyph(numerator);
                AddGlyph(denominator);

                base.DoLayout();

                for (int i = 0, j = Glyphs.Count; i < j; i++)
                {
                    var g = Glyphs[i];
                    g.X = (Width - g.Width) / 2;
                }
            }
        }