Вам потребуется переопределить стиль в вашей глобальной таблице стилей в качестве альтернативы использованию deep.Я не уверен, что вы можете сделать эту работу идеально при любых условиях из-за того, как элементы поля формы расположены, переменные отступы и т. Д., Но вот отправная точка:
<form [formGroup]="myGroup" style="display: flex; flex-direction: column; height: 50%;">
<mat-form-field class="stretch-height">
<textarea matInput formControlName="myControl"></textarea>
</mat-form-field>
</form>
<my-custom-component style="height: 50%" *ngIf="somevariable" [variable]="somevariable"></my-custom-component>
Глобальный CSS:
.mat-form-field.stretch-height,
.mat-form-field.stretch-height .mat-form-field-flex,
.mat-form-field.stretch-height textarea {
height: 100%;
}
.mat-form-field.stretch-height .mat-form-field-wrapper {
height: calc(100% - 1.34375em);
}
.mat-form-field.stretch-height .mat-form-field-infix {
height: calc(100% - 1.34375em - 2px);
}
Жизненно важно, чтобы родительский контейнер имел высоту 100% или как вам угодно.
Вот демонстрация StackBlitz .