摘要
WPF提供了三個用于輸入文本的控件:TextBox、RichTextBox和PasswordBox。PasswordBox控件直接繼承自Control類。TextBox和RichTextBox控件間接繼承自TextBoxBase類。
這個地方與Winform區别比較大。
正文
文字輸入框(TextBox)
由于 TextBox 和 RichTextBox 都是以 TextBoxBase 為基類,所以這些屬性對兩種文本輸入控件都有效。
屬性 |
描述 |
AcceptsReturn |
是否支持輸入 Enter 鍵換行 |
AcceptsTab |
是否支持插入tab控制符 |
AutoWordSelection |
是否支持自動選擇整個詞 |
CanRedo |
是否支持重做前一個動作 |
CanUndo |
是否支持撤銷前一個動作 |
ExtentHeight |
獲取可見的内容區域的垂直大小 |
ExtentWidth |
獲取可見的内容區域的水平大小 |
HorizontalOffset |
獲取或設置水平滾動條位置 |
HorizontalScrollBarVisibility |
是否顯示水平滾動條 |
VerticalOffset |
獲取或設置垂直滾動條的位置 |
VerticalScrollBarVisibility |
是否顯示垂直滾動條 |
IsReadOnly |
是否隻讀 |
IsUndoEnabled |
是否支持恢複操作 |
UndoLimit |
獲取或設置可以恢複的動作次數 |
SpellCheck |
設置SpellCheck.IsEnabled屬性,可自動檢查輸入框中單詞是否拼寫錯誤 |
ViewportWidth |
設置視窗的寬度 |
ViewportHeight |
設置視窗的高度 |
文字輸入框
文字輸入框,該控件可用于顯示或編輯無格式文本。
文字輸入框是一個非常常用的控件,它是由多個控件組成的,其中含有Border、ScrollViewer、Grid、Rectangle、TextView、ScrollBar等一些控件。
屬性 |
描述 |
MinLines |
獲取或設置最小可見行數 |
MaxLines |
獲取或設置最大可見行數 |
Text |
獲取或設置文本框的文本内容 |
CharacterCasing |
枚舉類,獲取或設置輸入字符的大小寫 |
TextAlignment |
枚舉類,獲取或設置文本框的内容的水平對齊方式 |
SelectionLength |
獲取或設置當前所選内容的字符數 |
LineCount |
獲取文本框中的總行數 |
SelectedText |
獲取或設置文本框中當前選擇的内容 |
TextWrapping |
枚舉類,獲取或設置文本的換行方式 |
MaxLength |
獲取或設置文本框中輸入的最大字符數 |
密碼輸入框(PasswordBox)
密碼輸入框,用于輸入和處理密碼的控件。
屬性 |
描述 |
MaxLength |
獲取或設置密碼的最大長度 |
PasswordChar |
獲取或設置密碼的掩碼字符 |
Password |
獲取或設置當前保留的密碼 |
<StackPanel Margin="10">
<TextBlock Text="用戶名"></TextBlock>
<TextBox></TextBox>
<Separator Margin="0,15" Background="#dddddd"></Separator>
<TextBlock Text="密碼"></TextBlock>
<PasswordBox Name="txtPassword" MaxLength="20" PasswordChar="*" PasswordChanged="txtPassword_PasswordChanged"></PasswordBox>
<TextBlock Name="lblInfo" Foreground="Red"></TextBlock>
<StackPanel Orientation="Horizontal">
<Button Name="btnSubmit" Content="提交"></Button>
</StackPanel>
</StackPanel>
private void txtPassword_PasswordChanged(object sender, RoutedEventArgs e)
{
this.lblInfo.Text = "正在輸入密碼信息...";
}
<StackPanel Margin="10">
<TextBox MinLines="1"
MaxLines="5"
MaxLength="100"
AcceptsTab="True"
AcceptsReturn="True"
TextWrapping="Wrap"
TextAlignment="Center"
CharacterCasing="Upper"/>
</StackPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" SpellCheck.IsEnabled="True" MaxLength="500" TextWrapping="Wrap" AcceptsReturn="True" Name="txt1"
VerticalScrollBarVisibility="Auto" SelectionChanged="txt1_SelectionChanged"></TextBox>
<StackPanel Grid.Row="1">
<Button Content="Show Select Text" Name="btnSelectText" Click="btnSelectText_Click"></Button>
<TextBlock Foreground="Red">您選中了:</TextBlock>
<TextBlock x:Name="tb1" TextWrapping="Wrap"></TextBlock>
</StackPanel>
</Grid>
private void btnSelectText_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(txt1.SelectedText);
}
private void txt1_SelectionChanged(object sender, RoutedEventArgs e)
{
tb1.Text = txt1.SelectionStart.ToString() "_" txt1.SelectedText "_" txt1.SelectionLength;
}
<StackPanel Margin="10">
<RichTextBox>
<FlowDocument>
<Paragraph>
<TextBox Text="測試一下看看"></TextBox>
<LineBreak></LineBreak>
北京時間5月14日,密爾沃基雄鹿隊與波士頓凱爾特人隊迎來了東決第6戰的比賽。本場比賽,超級巨星字母哥30投14中,罰球15中14,狂砍44分20籃闆。
字母哥也成為了2001年至今首位在季後賽砍下40 20的球星,比肩奧尼爾。可惜的是,雄鹿最終以95-108不敵對手,系列賽進入搶七。
<Image Source="/user.png" Height="176" Width="136"></Image>
</Paragraph>
</FlowDocument>
</RichTextBox>
</StackPanel>
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!