Я наблюдал эту проблему в Grids
и StackPanels
, она может относиться и к другим панелям, рассмотрим следующие Xamls:
<Grid MaxWidth="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label>Title:</Label>
<TextBox Grid.Column="1" Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
и
<StackPanel MaxWidth="200">
<Label>Title:</Label>
<TextBox Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
(Редактировать: у меня есть несколько таких переменных блоков, поэтому я не устанавливаю MaxWidth
самого TextBox
)
Конечно, я хочу, чтобы при вводе текста TextBox
не увеличивалсянемного больше, если достигнут родительский MaxWidth
, однако этого не происходит, размер панели изменяется до достижения MaxWidth
и стрельба TextBox
выходит за пределы границ.
Если второй столбец сетки имеетширина не определена (по умолчанию одна звезда), TextBox
не будет расти, поскольку он просто занимает все доступное пространство, поэтому текст прокручивается так, как я хочу, но эта панель является элементом в ToolBar
, а если ToolBar
в горизонтальном ToolBarTray
этот параметр вызывает мгновенное переполнение.
Любые идеи о том, как заставить TextBox не выходить за пределы?
Редактировать: Theответы (вероятно) работают в нормальных сценариях, но панель инструментов как-то scrТеперь мой макет закончен, во-первых, мои элементы управления всегда выталкиваются в область переполнения панели инструментов по любой причине и содержимому, которые до растяжения внутри Grid-ячейки больше не делают этого.Поскольку мой первоначальный вопрос был о том, как предотвратить это внутреннее переполнение (а не о том, как справиться с особенностями панели инструментов), я просто оставлю это на этом.