Есть ли панель, в которую можно было бы запихнуть Control'ы, которые не смогут выходить за пределы этой панели, Margin которых будет отсчитываться от границ этой панели и при этом, эта панель должна быть "резиновой"?
Если честно, у меня уже мозги взрываются от логики XAML. Понимаю, что возможно уход контрола за границы окна кому-то может быть нужен, но неужели без жёсткой фиксации высоты и ширины нельзя научить контролы правильно обтекать окно/панель?
К примеру, TextBlock отказывался переходить на новую строчку, пока я не задал жёстко границу панели, в которой он находится, при этом, если я пробую изменять ширину панели, текст не адаптируется под новую ширину, а остаётся неизменным (очевидно, это потому что я был вынужден фиксировать ширину панели и она более не реагирует на изменение окна).
Аналогично, вот тут я пытался понять почему ListView уходит за пределы окна и какой в этом смысл. А главное понять, как исправить поведение. К сожалению, никто не отреагировал на вопрос и я всё ещё в тупике.
Если я правильно понимаю, то вам нужно использовать Grid
. StackPanel
, которую вы скорей всего используете, бесконечна в ширину или высоту для внутренних элементов, она просто обрезает представление внутренних элементов, не влияя на их ширины/высоты, не вызывая trimming у TextBlock
, например. Grid
же позволяет настроить ширины/высоты строк/колонок как вам нравится.
Например:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="1 1" />
<TextBlock Text="1 2 Эта колонка занимает всю оставшуюся ширину"
Grid.Column="1"
TextTrimming="CharacterEllipsis"/>
<ListBox Grid.Row="1">
<sys:String>2 1 Этот</sys:String>
<sys:String>ListBox</sys:String>
<sys:String>узкий</sys:String>
<sys:String>но занимает</sys:String>
<sys:String>всю оставшуюся</sys:String>
<sys:String>высоту.</sys:String>
</ListBox>
<ListBox Grid.Row="1"
Grid.Column="1">
<sys:String>2 2 Этот</sys:String>
<sys:String>ListBox</sys:String>
<sys:String>широкий</sys:String>
<sys:String>и высокий.</sys:String>
</ListBox>
</Grid>
Стоит отметить, что по умолчанию у всех элементов Grid.Row
и Grid.Column
равны 0.
Попробуйте потаскать окно. TextBlock
в верхней колонке будет тримиться, а у ListBox
появятся скролы.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Прошу прощения если повторяюсь, но что то не могу найти ответаесть таблица datagridview заполняется так :
Есть, определенный набор полей, которые должны автоматически обрабатываться через Jquery в соответствии с регуляркой, но этих полей много, и пришла...