private void OnDraw() { int shift = 0; // 谱号偏移,如果是高音谱号偏移整个五线谱长度 switch (_head.GetSign()) { case "G": // 高音符号G shift = _paramsGetter.GetTotalHeight(); DrawSymbol("\uE19E", _paramsGetter.GetClefPortraitShift(), _paramsGetter.GetStaffCenterPosition() + shift); break; case "F": // 低音符号F shift = 0; DrawSymbol("\uE19C", _paramsGetter.GetClefPortraitShift(), _paramsGetter.GetStaffCenterPosition() + shift); break; default: break; } float first = _paramsGetter.GetFirstFifthsPosition(); float second = _paramsGetter.GetSecondFifthsPosition(); switch (_head.GetFifths()) { case "2": { DrawSymbol("\uE10E", first, _paramsGetter.GetStaffPosition() + shift); // # DrawSymbol("\uE10E", second, _paramsGetter.GetStaffCenterPosition() + shift); } break; case "1": DrawSymbol("\uE10E", first, _paramsGetter.GetStaffPosition() + shift); break; case "-1": DrawSymbol("\uE114", first, _paramsGetter.GetStaffCenterPosition() + shift); break; // B default: break; } }