WPF中自动增加行(动画)的TextBox
生活随笔
收集整理的這篇文章主要介紹了
WPF中自动增加行(动画)的TextBox
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WPF中自動增加行(動畫)的TextBox 原文:WPF中自動增加行(動畫)的TextBox
WPF中自動增加行(動畫)的TextBox
WPF中的Textbox控件是可以自動換行的,只要設置TextWrapping屬性為”Wrap”即可,但是存在一個問題:Textbox的高度是固定的,當輸入文本過多時就會出現如下情況。
Textbox雖然沒有自動增加高度的屬性,但是我們可以通過設置來實現這一個功能。相關xaml代碼如下
<Grid VerticalAlignment="Top" HorizontalAlignment="Left" Width="36" Height="100"><TextBox x:Name="textBox" TextWrapping="Wrap" VerticalAlignment="Top" /></Grid>效果如下
這里需要注意的是
- 如果設置了textBox的Width、Height或者Margin屬性,那么此textBox的大小就已經限制死了,不會自動增加,會出現上圖中的情況。
- 如果想設置textBox的大小和位置,需要把textBox放在一個Grid中,通過Grid的屬性來控制textBox(上文中xaml文件中的方法)
其實到此為止所需要的功能已經實現了,但是為了讓讓textbox更美觀,我加了一個動畫
效果如下:
表面上看是一個textbox,其實是一個Grid加上2個textBox(一個顯示,一個隱藏),xaml代碼如下
<Grid><TextBox x:Name="txtVisible" TextWrapping="Wrap"/><TextBox x:Name="txtHidden" TextWrapping="Wrap" Visibility="Hidden" VerticalAlignment="Top"/> </Grid>Grid是用來控制textbox的大小的,兩個textbox中,顯示的那個用于輸入文字,隱藏的用于觸發動畫。原理如下
在txtVisible中輸入文字的同時,txtVisible把text傳遞給txtHidden,當txtHidden中的內容已經滿一行時,會觸發SizeChange事件,這個事件再觸發txtVisible高度變化動畫。代碼如下
轉載于:https://www.cnblogs.com/lonelyxmas/p/10272989.html
總結
以上是生活随笔為你收集整理的WPF中自动增加行(动画)的TextBox的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UI控件Telerik UI for W
- 下一篇: 在Windows平台下使用Gitblit