Aspose::Words::Drawing::ShapeBase::get_BoundsInPoints метод
Содержание
[
Скрывать
]ShapeBase::get_BoundsInPoints method
Получает расположение и размер содержащего блока фигуры в пунктах, относительно якоря самой верхней фигуры.
System::Drawing::RectangleF Aspose::Words::Drawing::ShapeBase::get_BoundsInPoints()
Примеры
Показывает, как проверить границы содержащего блока фигуры.
auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = builder->InsertShape(Aspose::Words::Drawing::ShapeType::Line, Aspose::Words::Drawing::RelativeHorizontalPosition::LeftMargin, 50, Aspose::Words::Drawing::RelativeVerticalPosition::TopMargin, 50, 100, 100, Aspose::Words::Drawing::WrapType::None);
shape->set_StrokeColor(System::Drawing::Color::get_Orange());
// Хотя сама линия занимает мало места на странице документа,
// она занимает прямоугольный содержащий блок, размер которого мы можем определить с помощью свойств "Bounds".
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(50.0f, 50.0f, 100.0f, 100.0f), shape->get_Bounds());
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(50.0f, 50.0f, 100.0f, 100.0f), shape->get_BoundsInPoints());
// Создайте групповую фигуру, а затем задайте размер её содержащего блока с помощью свойства "Bounds".
auto group = System::MakeObject<Aspose::Words::Drawing::GroupShape>(doc);
group->set_Bounds(System::Drawing::RectangleF(0.0f, 100.0f, 250.0f, 250.0f));
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(0.0f, 100.0f, 250.0f, 250.0f), group->get_BoundsInPoints());
// Создайте прямоугольник, проверьте размер его ограничивающего блока и затем добавьте его в групповую фигуру.
shape = System::MakeObject<Aspose::Words::Drawing::Shape>(doc, Aspose::Words::Drawing::ShapeType::Rectangle);
shape->set_Width(100);
shape->set_Height(100);
shape->set_Left(700);
shape->set_Top(700);
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(700.0f, 700.0f, 100.0f, 100.0f), shape->get_BoundsInPoints());
group->AppendChild<System::SharedPtr<Aspose::Words::Drawing::Shape>>(shape);
// Координатная плоскость групповой фигуры имеет начало в левом верхнем углу её содержащего блока,
// а координаты x и y (1000, 1000) находятся в правом нижнем углу.
// Наша групповая фигура имеет размер 250×250pt, поэтому каждый 4pt на координатной плоскости групповой фигуры
// соответствует 1pt в координатной плоскости тела документа.
// Каждая вставляемая фигура также уменьшится в размере в 4 раза.
// Изменение свойства "BoundsInPoints" фигуры отразит это.
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(175.0f, 275.0f, 25.0f, 25.0f), shape->get_BoundsInPoints());
doc->get_FirstSection()->get_Body()->get_FirstParagraph()->AppendChild<System::SharedPtr<Aspose::Words::Drawing::GroupShape>>(group);
// Вставьте фигуру и разместите её за пределами блока, содержащего групповую фигуру.
shape = System::MakeObject<Aspose::Words::Drawing::Shape>(doc, Aspose::Words::Drawing::ShapeType::Rectangle);
shape->set_Width(100);
shape->set_Height(100);
shape->set_Left(1000);
shape->set_Top(1000);
group->AppendChild<System::SharedPtr<Aspose::Words::Drawing::Shape>>(shape);
// Отпечаток групповой фигуры в теле документа увеличился, но содержащий блок остался прежним.
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(0.0f, 100.0f, 250.0f, 250.0f), group->get_BoundsInPoints());
ASPOSE_ASSERT_EQ(System::Drawing::RectangleF(250.0f, 350.0f, 25.0f, 25.0f), shape->get_BoundsInPoints());
doc->Save(get_ArtifactsDir() + u"Shape.Bounds.docx");
См. также
- Class ShapeBase
- Namespace Aspose::Words::Drawing
- Library Aspose.Words for C++