У меня есть UserControl, который будет загружен во время выполнения в ContentControl. Пользовательский элемент управления не настраивает свой размер на родительский элемент управления, даже если я не задал ширину или высоту. Что я пропустил?Динамически добавленный UserControl не настраивается на размер родителя
<ContentControl x:Name="MainContentControl" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" >
<Label Background="LightGray" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" >Sample control </Label>
</ContentControl>
Контроль образца (метки) внутри ContentControl прекрасно работает и расширяется в зависимости от изменения размера ContentControl.
Когда я теперь заменить этикетку с UserControl размер UserControl имеет в MAXSIZE позицию метки, которая находится внутри него
Здесь UserControl
<UserControl x:Class="test.testUserControl"
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>
<Label Content="Label" HorizontalAlignment="Left" Margin="235,200,0,0" VerticalAlignment="Top"/>
</Grid>
Ваша метка совмещена с левой верхней части контейнера, так что это может просто выглядеть таким образом. Вы должны зацепить Snoop и изучить свой интерфейс во время выполнения, чтобы увидеть, как он действительно выложен. – Will
Благодарим вас за ответ. Метка во втором примере кода не является проблемой. Сам UserControl не является полноразмерным для родительского ContentControl. Если я дам Grid цвет фона ... он показывает, что он окрашен только до конца метки. Реальная проблема, которая у меня есть, у меня есть в моем полном коде ListView внутри этого UserControl и хочу, чтобы это была полная ширина и с использованием полной высоты (без изменения ее верхнего и левого ...). Но, очевидно, UserControl не принимает размер его родительского элемента, и поэтому дочерние элементы usercontrols не расширяются. – freeskydiver
ListViews - это PITAs об этом. Вы должны специально установить [горизонтальные и вертикальные выравнивания содержимого на них] (https://msdn.microsoft.com/en-us/library/system.windows.controls.control.horizontalcontentalignment%28v=vs.110%29. aspx? f = 255 & MSPPError = -2147217396), в противном случае их дети не занимают все свободное пространство. Вместо того, чтобы пытаться скомпоновать ваш код, создайте [mcve], который воспроизводит вашу проблему и помещает ее в [edit] – Will