Я хочу установить начальный размер моего окна в WPF. Я не вижу прямого способа сделать это.
В частности, когда мое окно открывается, я хочу, чтобы размер был достаточно большим, чтобы его содержимое соответствовало без необходимости прокрутки. Но после того, как это показано, я хочу, чтобы окно свободно изменялось (либо больше, либо меньше).
Если я устанавливаю атрибуты Width и Height в моем элементе Window, это устанавливает неклиентский (внешний) размер, что не полезно. Как только заголовок и изменение размера границ съедят в этом пространстве, клиентская область больше не будет достаточно большой для ее содержимого, и у меня будут полосы прокрутки. Я мог бы компенсировать, выбирая больший размер, но высота заголовка и ширина границы настраиваются пользователем (а также значения по умолчанию, меняющиеся по версии ОС) и не обязательно будут одинаковыми на другой машине.
Я могу установить ширину и высоту элемента содержимого окна (тогда <Grid>
), а затем установить атрибут Window SizeToContent в WidthAndHeight. Это получает начальный размер окна именно там, где я его хочу. Но тогда вещи больше не изменяются - я могу изменить размер окна, но его содержимое не изменяется с ним, потому что я указал фиксированный размер.
Можно ли установить размер начального клиента Window, желательно без кода? (Я возьму код, если это единственный способ, но я бы предпочел подход XAML, если у кого-то есть.)