在日常項目中,一個TextBox需要輸入用戶名,我們通常的做法是先用一個TextBlock來說明,例如下面的截圖:
今天將使用另外一種方式來展示,使用水印的方式。請參考下面的代碼:
<Window.Resources> <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter"/> <Style x:Key="EntryFieldStyle" TargetType="Grid" > <Setter Property="HorizontalAlignment" Value="Stretch" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="Margin" Value="20,0" /> </Style> </Window.Resources> <Grid Style="{StaticResource EntryFieldStyle}"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <TextBlock Text="請輸入用戶名" Margin="5,2" Visibility="{Binding ElementName=txtWatermark, Path= Text.IsEmpty, Converter={StaticResource booleanToVisibilityConverter}}"/> <TextBox x:Name="txtWatermark" Background="Transparent" BorderBrush="Indigo"/> </Grid> </Grid>
運行效果截圖:
我們可以把這個封裝成一個UserControl,這樣就可以復用了。可以下載我的項目代碼,我已經把它封裝成一個控件。代碼下載。
當然我們也可以使用其他控件實現,例如 Extended WPF Toolkit 的 WatermarkTextBox 控件。
如果有其他實現方式歡迎與我分享。感謝你的閱讀。