Разница между DesignWidth и Width в UserControl в WPF
Когда я создаю новый UserControl
в WPF, студия создает некоторый XAML:
<UserControl x:Class="MOG.Objects.Date.Calender"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
</Grid>
</UserControl>
В UserContol
я также могу добавить свойство Ширина. В чем разница между DesignWidth
и Width
?
Ответы
Ответ 1
Свойства d:DesignHeight
и d:DesignWidth="300"
используются, потому что (Source
):
-
UserControls не встроены в родительский вид. Width
и Height
не установлены.
-
Конструктор корневого элемента не вызывается. Корневой элемент заменяется дизайнером. ViewModel не создается.
-
Элементы управления ведут себя иначе. Нет событий мыши и клавиатуры.
Загруженные временные расширения дизайна
Чтобы улучшить опыт проектирования, Microsoft предоставляет специальные атрибуты времени разработки, которые могут быть добавлены к любому элементу WPF и служат подсказкой для инструмента проектирования.
В режиме проектирования используется все, что используется в префиксе d:
, в том числе такие свойства, как:
d:DesignWidth
d:DesignHeight
d:LayoutOverrides
Ответ 2
d:DesignHeight
и d.DesignWidth
предназначены для конструктора (WYSIWYG), в Visual Studio или в Expression Blend. Height
и Width
на самом деле предназначены для выполнения.