WPF TextBox не переключается на новую строку - PullRequest
0 голосов
/ 07 августа 2020

У меня есть TextBox, который я хочу быть многострочным и автоматически изменять размер до родительского:

<TextBox Grid.Row="0" Grid.Column="0" 
    AcceptsReturn="True"
    HorizontalAlignment="Stretch"
    IsEnabled="{Binding CanModify}"
    Margin="0"
    TextWrapping="Wrap" 
    Text="{Binding Comment, UpdateSourceTrigger=PropertyChanged}"
    VerticalScrollBarVisibility="Auto"
    VerticalAlignment="Stretch"
/>

Большинство предложений по автоматическому переключению TextBlock на новую строку касаются добавления TextWrapping="Wrap" к его свойствам, чтобы предотвратить растяжение, обычно это AcceptsReturn="True", VerticalScrollBarVisibility="Auto" или вручную width. Как видите, единственное, что я еще не пробовал, это ширина, но в моем случае TextBox должно соответствовать контейнеру, ширина которого неизвестна (также зависит от его родителя). Установка свойств, как в листинге, не помогает: курсор никогда не перемещается на новую строку и растягивает TextBox, а также все окно.

Что я могу сделать, чтобы предотвратить растяжение этого TextBox и автоматически перемещать текст на новую строку?

EDIT : Контейнер - это TabControl. Вкладка, содержащая:

<TabItem Header="{some binding}">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition SharedSizeGroup="TabHeight" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="TabWidth" />
        </Grid.ColumnDefinitions>

        <TextBox Grid.Row="0" Grid.Column="0" 
                 AcceptsReturn="True"
                 HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                 IsEnabled="{Binding CanModify}"
                 Margin="0"
                 Style="{some style}"
                 TextWrapping="Wrap" 
                 Text="{Binding Comment, UpdateSourceTrigger=PropertyChanged}"
                 VerticalScrollBarVisibility="Auto"
                 />
    </Grid>
</TabItem>

Это TabControl лежит в простом Grid без каких-либо специфических c стилей ограничений. Увы, я не могу поделиться всем кодом стилей, примененным к TabControl, но я был бы очень признателен за любые идеи, которые можно попробовать.

SharedSizeGroups, как вы видите, предназначены для растягивания всего TabControl на самую широкую вкладку, предотвращая ее изменение размера переключателями вкладок и доступ к ней только с другой вкладкой (в этой TabControl их две).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...