Я создаю графический редактор, такой как Inkscape.На данный момент я использую определенные «проверки» (как показано вниз) для каждого инструмента, это означает, что я должен написать весь код дважды или более (как показано ниже).
Я как-то хочу сделать это только для одного инструмента, а затем использовать его.Возможно ли это?
public void ChangeGraphicsValues()
{
if (activeTool == Tools.Rectangle)
{
for (int i = 0; i < rect.Count; i++)
{
#region Width
if (objectWidthBox.Text != "")
{
rect[i].Width = Convert.ToDouble(objectWidthBox.Text);
}
else
if (objectWidthBox.Text == "")
{
objectWidthBox.Text = "0";
}
#endregion
#region Heigth
if (objectHeightBox.Text != "")
{
rect[i].Height = Convert.ToDouble(objectHeightBox.Text);
}
else
if (objectHeightBox.Text == "")
{
objectHeightBox.Text = "0";
}
#endregion
}
else
if (activeTool == Tools.Text)
{
for (int i = 0; i < txt.Count; i++)
{
#region Width
if (objectWidthBox.Text != "")
{
txt[i].Width = Convert.ToDouble(objectWidthBox.Text);
}
else
if (objectWidthBox.Text == "")
{
objectWidthBox.Text = "0";
}
#endregion
#region Heigth
if (objectHeightBox.Text != "")
{
txt[i].Height = Convert.ToDouble(objectHeightBox.Text);
}
else
if (objectHeightBox.Text == "")
{
objectHeightBox.Text = "0";
}
#endregion
//some other things - rotation,...
}
}
}
rect
- это список прямоугольников из графики, txt - это список текстовых полей.Эти инструменты предназначены для создания некоторой графики, как в Inscape.
Я хочу, чтобы они были создаваемыми, изменяемыми (редактируемыми), разрушаемыми.Я могу сказать, что у меня есть все, но я хочу, чтобы они были доступны вместе, например obj.Height
вместо rect.Height
и txt.Height
или сократить мой код