DanielDemidko
@DanielDemidko
Программист

Как сделать чтобы фигура не вылазила за рамку при трансформациях?

Пишу небольшое приложение на WPF. Нужно чтобы внутри рамки (Border) была фигура (например Rectangle), к которой можно было бы применять некие преобразования (например поворот на 30 градусов).
Всё получилось, но только вот при повороте фигуры, она выходит за границы рамки.
Как это исправить?
5c6e76189e4d2477989743.jpeg
partial class AbstractShape : Border
{
    public AbstractShape(in Shape shape)
    {
        InitializeComponent();
        Child = shape;
    }
}


В чём проблема, как видится мне: У фигуры по умолчанию стоит свойство Fill, т. е. заполнения всей доступной области, однако вместо того чтобы самой исказиться, она предпочитает вылезти за рамки.
Если я растяну после поворота фигуры саму рамку в высоту и ширину, то фигура соответственно тоже вновь изменит размер и опять выскочит.
  • Вопрос задан
  • 300 просмотров
Решения вопроса 3
samodum
@samodum
Какой вопрос - такой и ответ
При вращении нужно ещё менять масштаб фигуры. А сам масштаб зависит от угла поворота, т.е. это будет функция от угла.
Когда-то очень давно я подобное делал, только на канве
Ответ написан
DanielDemidko
@DanielDemidko Автор вопроса
Программист
Всё заработало! Для фигуры вместо RenderTransform = new Rotate...() поставил LayoutTransform = new Rotate...()
И всё заработало как я и хотел - плавно вписываясь и уменьшаясь в размерах.
Ответ написан
Комментировать
cyber_roach
@cyber_roach
UX дизайнер INEDIapps
Или можно просто установить у бордера свойство обрезки контента
https://docs.microsoft.com/ru-ru/dotnet/api/system...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@GrWizard
Делайте не Render трансормацию, а Layout
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы