Протяжение холста WPF горизонтально

Тесная связь приходит на ум. Использование открытых полей удаляет слой абстракции, доступный благодаря использованию свойств. Использование закрытых полей и свойств скрывает реализацию от других классов и помогает изолировать их (внешние классы) всякий раз, когда необходимо внести изменения.

Кроме того, имейте в виду, что вы ссылаетесь на автоматически реализуемых свойств , в результате чего компилятор создает для вас вспомогательное поле вместо того, чтобы вручную создавать вспомогательное (личное) поле для каждого свойства. в вашем классе.

8
задан Dave Clemmer 4 August 2013 в 23:55
поделиться

5 ответов

Используйте сетку в качестве элемента верхнего уровня в вашем пользовательском интерфейсе - она ​​растянется, чтобы заполнить свой контейнер. Затем поместите Canvas с HorizontalAlignment = "Stretch" внутри Grid , и он будет вести себя так, как вы хотите.

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Canvas Background="Blue"/>
</Grid>

Это сработало для меня. Ключ - это элемент пользовательского интерфейса верхнего уровня. В то время как сетка по умолчанию заполняет все доступное пространство, холсты занимают ровно столько места, сколько требуется их содержимому.

15
ответ дан 5 December 2019 в 07:36
поделиться

Холст должен сделать это автоматически, если вы не устанавливаете вручную высоту и / или ширину. На какой элемент управления вы пытаетесь поместить холст? Вы можете опубликовать свой код?

1
ответ дан 5 December 2019 в 07:36
поделиться

Я предполагаю, что вы пробовали
canvas.HorizontalAlignment = HorizontalAlignment.Stretch

Если это не сработает,

4
ответ дан 5 December 2019 в 07:36
поделиться

Вы можете использовать док-панель, чтобы заставить ее заполнить доступную ширину. Последний элемент в списке элементов управления док-панели автоматически растягивается, чтобы заполнить оставшееся пространство.

<DockPanel>
   <Canvas />
</DockPanel>
1
ответ дан 5 December 2019 в 07:36
поделиться

Проблема в том, что вы указываете Высота и Ширина . Без этих свойств элемент управления может исчезнуть в дизайнере, но он должен иметь соответствующий размер, когда вы вставляете холст в другой элемент управления.

Если я правильно помню, следующая версия WPF будет иметь «DesignWidth» и «DesignHeight». свойства, которые позволяют отображать элемент управления в конструкторе с заданным размером, не влияя на его измерение при вставке в другие элементы управления.

1
ответ дан 5 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: