private static int GetLeftPadding(SignViewModel signViewModel) { var signModel = signViewModel.Sign; var columnCenter = 80; if (signModel.Lane == 'L') columnCenter = 30; if (signModel.Lane == 'R') columnCenter = 130; int signxMin = int.MaxValue, signyMin = int.MaxValue, signxMax = int.MinValue, signyMax = int.MinValue; var firstOrDefault = signModel.Frames.FirstOrDefault(); if (firstOrDefault != null) foreach (var symbol in firstOrDefault.Symbols) { int symxMin = symbol.X; int symyMin = symbol.Y; int symxMax = symbol.X + GetSymbolWidth(symbol.Code); int symyMax = symbol.Y + GetSymbolHeight(symbol.Code); if (symxMin < signxMin) signxMin = symxMin; if (symyMin < signyMin) signyMin = symyMin; if (symxMax > signxMax) signxMax = symxMax; if (symyMax > signyMax) signyMax = symyMax; } var width = signxMax - signxMin; var toLeftofColumnCenter = width - (signxMax - 500); return columnCenter - toLeftofColumnCenter; }
private static Size GetSize(SignViewModel signViewModel) { var signModel = signViewModel.Sign; int signxMin = int.MaxValue, signyMin = int.MaxValue, signxMax = int.MinValue, signyMax = int.MinValue; var firstOrDefault = signModel.Frames.FirstOrDefault(); if (firstOrDefault != null) foreach (var symbol in firstOrDefault.Symbols) { int symxMin = symbol.X; int symyMin = symbol.Y; int symxMax = symbol.X + GetSymbolWidth(symbol.Code); int symyMax = symbol.Y + GetSymbolHeight(symbol.Code); if (symxMin < signxMin) signxMin = symxMin; if (symyMin < signyMin) signyMin = symyMin; if (symxMax > signxMax) signxMax = symxMax; if (symyMax > signyMax) signyMax = symyMax; } return new Size(signxMax - signxMin, signyMax - signyMin); }
private static SignViewModel ConvertSigntoSignViewModel(Sign signModel) { //var size = GetSize(signModel.MinBounding.X, signModel.MinBounding.Y, signModel.MaxBounding.X, // signModel.MaxBounding.Y, 10); var size = GetSize(signModel); //var leftPadding = GetLeftPadding(signModel); //var margin = new Thickness(leftPadding, 0, 0, 0); //_top += size.Height; //var top = _top; var svm = new SignViewModel { Sign = signModel, Symbols = GetSymbols(signModel), Height = size.Height, Width = size.Width, //Margin = margin, //LefttoEdge = leftPadding, //Top = top }; return svm; }