Я пытаюсь имитировать приложение Sticky Notes в Windows 7. В исходном приложении, если вы вводите текст в Sticky Note и текст становится слишком большим (по вертикали, как и в номере линий), чтобы поместиться в окне, окно автоматически расширяется вертикально, по одной строке за раз, чтобы было больше места. Другими словами, если в обычном текстовом поле появится вертикальная полоса прокрутки, и текст будет прокручиваться вниз (так что первая строка станет невидимой), в Sticky Notes текстовое поле будет расширяться достаточно точно, чтобы соответствовать тексту, чтобы не отображалась полоса прокрутки. Разумеется, полоса прокрутки все же появляется, когда вы вручную измените размер окна.Вертикально расширяйте текстовое поле автоматически, когда текст слишком длинный
Если у вас Windows 7, просто откройте приложение Sticky Notes и введите несколько строк в липкой ноте, пока она не увеличится.
Я пытаюсь имитировать этот эффект, но мне не повезло. Проблема заключается в том, что фактическое окно должно изменять размер, а не только текстовое поле (я не думаю, что WPF работает таким образом, что изменение размера дочернего элемента может «заставить» родительский элемент стать больше? По крайней мере, не для окна, правильно?).
Содержимое окна на данный момент таковы:
<Window Background="Transparent" BorderBrush="Transparent">
<!-- Transparent border to draw dropshadow on -->
<Border Background="Transparent" BorderBrush="Transparent">
<!-- Grid with UI elements -->
<Grid Margin="5" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="27" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Stickynote header -->
<Border ... />
<!-- Content -->
<Border Grid.Row="1">
<TextBox Text="{Binding ContentText}" ... />
</Border>
</Grid>
</Border>
</Window>
Кто-нибудь знает, как я могу добиться этого эффекта? Благодаря!
Попробуйте установить ширину = «Авто» для текстового поля – sll