Exemple #1
0
		public static PlanElement FromRectangle(ElementBaseRectangle elem)
		{
			if (elem is ElementEllipse)
			{
				return null;
			}
			var showState = false;
			if (HasProperty(elem, "ShowState"))
			{
				showState = (bool)GetProperty(elem, "ShowState");
			}
			if (elem is ElementRectangleGKMPT)
			{
				showState = true;
			}
			Guid zoneUID = Guid.Empty;
			if (HasProperty(elem, "ZoneUID"))
			{
				zoneUID = (Guid)GetProperty(elem, "ZoneUID");
			}
			if (!showState)
			{
				if (elem is ElementRectangle)
				{
					return FromRectangleSimple(elem, false);
				}
				return FromRectangleSimple(elem, true);
			}

			// Получаем прямоугольник, в который вписан текст
			// Получаем элемент текста
			var textElement = new ElementTextBlock
			{
				FontBold = true,
				FontFamilyName = "Arial",
				FontItalic = true,
				Text = "Неизвестно",
				FontSize = 18,
				ForegroundColor = RubezhAPI.Colors.Black,
				WordWrap = false,
				BorderThickness = 1,
				Stretch = true,
				TextAlignment = 1,
				VerticalAlignment = 1,
				PresentationName = elem.PresentationName,
				UID = zoneUID == Guid.Empty ? elem.UID : zoneUID,
				Height = elem.Height,
				Width = elem.Width
			};
			var planElementText = FromTextElement(
				textElement, new System.Windows.Size(elem.Width, elem.Height), elem.Left, elem.Top, false);
			// Получаем элемент прямоугольника, в который вписан текст
			var planElementRect = FromRectangleSimple(elem, false);
			// Очищаем элементы от групповой информации
			planElementText.Hint = null;
			planElementText.HasOverlay = false;
			planElementText.Id = Guid.Empty.ToString();
			planElementRect.Hint = null;
			planElementRect.HasOverlay = false;
			planElementRect.Id = Guid.Empty.ToString();
			// Задаем групповой элемент
			var planElement = new PlanElement
			{
				ChildElements = new[] { planElementRect, planElementText },
				Id = zoneUID == Guid.Empty ? "pe" + elem.UID : "pe" + zoneUID,
				Hint = GetElementHint(elem),
				GkObject = GetGkObject(elem),
				Type = ShapeTypes.Group.ToString(),
				Name = elem.PresentationName,
				Width = elem.Width,
				Height = elem.Height,
				HasOverlay = true,
				BorderMouseOver = InternalConverter.ConvertColor(Colors.Orange),
				X = elem.Left,
				Y = elem.Top
			};


			return planElement;
		}
Exemple #2
0
		protected override ElementBaseRectangle CreateElement(double left, double top)
		{
			var element = new ElementTextBlock() { Left = left, Top = top };
			var propertiesViewModel = new TextBlockPropertiesViewModel(element, DesignerCanvas);
			return DialogService.ShowModalWindow(propertiesViewModel) ? element : null;
		}
Exemple #3
0
		/// <summary>
		///     Создает SVG-группу из ElementTextBlock
		/// </summary>
		/// <param name="elem">ElementTextBlock</param>
		/// <returns>групповой PlanElement</returns>
		public static PlanElement FromTextBlock(ElementTextBlock elem)
		{
			// Получаем прямоугольник, в который вписан текст
			// Получаем элемент текста
			var planElementText = FromTextElement(
				elem, new System.Windows.Size(elem.Width, elem.Height), elem.Left, elem.Top, elem.ShowTooltip);
			// Получаем элемент прямоугольника, в который вписан текст
			var planElementRect = FromRectangleSimple(elem, false);
			// Очищаем элементы от групповой информации
			planElementText.Hint = null;
			planElementText.HasOverlay = false;
			planElementText.Id = Guid.Empty.ToString();
			planElementRect.Hint = null;
			planElementRect.HasOverlay = false;
			planElementRect.Id = Guid.Empty.ToString();
			// Задаем групповой элемент
			var planElement = new PlanElement
			{
				ChildElements = new[] { planElementRect, planElementText },
				Id = planElementText.Id,
				Hint = GetElementHint(elem),
				Type = ShapeTypes.Group.ToString(),
				Width = elem.Width,
				Height = elem.Height,
				HasOverlay = false,
				X = elem.Left,
				Y = elem.Top
			};

			return planElement;
		}