Есть ли панель, которую я могу использовать в WPF, которая "победит" SizeToContent? - PullRequest
2 голосов
/ 04 июля 2010

Я в основном хочу, чтобы определенные части моего окна не влияли на SizeToContent (такие как строка заголовка), чтобы он не имел размера и разрушался. Есть ли панель, которую я могу использовать для этого (например, ScrollViewer?) Или я должен написать свою собственную?

1 Ответ

2 голосов
/ 04 июля 2010

Вам нужен элемент управления, который будет возвращать (0,0) из MeasureOverride . Canvas сделает это, но может не иметь другого поведения, которое вы хотите.Вы также можете создать подкласс существующей панели, такой как Grid, и просто вернуть пустой размер:

public class ZeroGrid
    : Grid
{
    protected override Size MeasureOverride(Size constraint)
    {
        base.MeasureOverride(constraint);
        return new Size();
    }
}

Это будет вести себя как Grid, поэтому его содержимое будет растягиваться до его фактического размера, но оно всегда будетDesiredSize от нуля, поэтому он не повлияет на SizeToContent.

...