У меня есть WrapPanel
, в которую я поместил некоторые Grid
с, в которую я поместил некоторые TextBox
Э.С., подобный следующему:Как ограничить максимальную ширину элемента в WrapPanel до ширины WrapPanel?
<WrapPanel Orientation="Horizontal">
<!-- Other label/text box pair grids -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="FancyLabel" Margin="1,1,1,0"/>
<TextBox Name="FancyValue"
Grid.Column="1"
Margin="1,1,1,0"
Text="{Binding}"
MinWidth="45"
Width="Auto"
TextWrapping="Wrap"
AcceptsReturn="False" />
</Grid>
</WrapPanel>
Если пользователь вводит текст, который слишком долго, а не упаковка для дополнительная линия, TextBox
расширяет ширину от экрана, а не уважая TextWrapping
, подобный следующему:
существует ли механизм, чтобы ограничить максимальную imum width (предпочтительно без привязки данных к ActualWidth
на WrapPanel
)?
, что странное поведение текстового поля, но есть вы пытались предотвратить изменения ширины текстового поля, используя событие Sizechanged, если не путем привязки данных? –
@RohitPrakash: Да, я мог бы сделать привязку или код, чтобы исправить это. Но любое такое решение, вероятно, будет хрупким. Практически каждый раз, когда я сталкиваюсь с проблемами форматирования, например, этот WPF имеет какое-то прикрепленное свойство или что-то, о чем я не знал, это то, что я искал. Если этого не существует, это нормально; но я хотел спросить, прежде чем я что-то взломал. –
использование TextTrimming. Https://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.texttrimming(v=vs.110).aspx –