Тесная связь приходит на ум. Использование открытых полей удаляет слой абстракции, доступный благодаря использованию свойств. Использование закрытых полей и свойств скрывает реализацию от других классов и помогает изолировать их (внешние классы) всякий раз, когда необходимо внести изменения.
Кроме того, имейте в виду, что вы ссылаетесь на автоматически реализуемых свойств , в результате чего компилятор создает для вас вспомогательное поле вместо того, чтобы вручную создавать вспомогательное (личное) поле для каждого свойства. в вашем классе.
Используйте сетку
в качестве элемента верхнего уровня в вашем пользовательском интерфейсе - она растянется, чтобы заполнить свой контейнер. Затем поместите 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>
Это сработало для меня. Ключ - это элемент пользовательского интерфейса верхнего уровня. В то время как сетка
по умолчанию заполняет все доступное пространство, холсты
занимают ровно столько места, сколько требуется их содержимому.
Холст должен сделать это автоматически, если вы не устанавливаете вручную высоту и / или ширину. На какой элемент управления вы пытаетесь поместить холст? Вы можете опубликовать свой код?
Я предполагаю, что вы пробовали
canvas.HorizontalAlignment = HorizontalAlignment.Stretch
Если это не сработает,
Вы можете использовать док-панель, чтобы заставить ее заполнить доступную ширину. Последний элемент в списке элементов управления док-панели автоматически растягивается, чтобы заполнить оставшееся пространство.
<DockPanel>
<Canvas />
</DockPanel>
Проблема в том, что вы указываете Высота
и Ширина
. Без этих свойств элемент управления может исчезнуть в дизайнере, но он должен иметь соответствующий размер, когда вы вставляете холст в другой элемент управления.
Если я правильно помню, следующая версия WPF будет иметь «DesignWidth» и «DesignHeight». свойства, которые позволяют отображать элемент управления в конструкторе с заданным размером, не влияя на его измерение при вставке в другие элементы управления.