最近項目中需要實現一個效果,類似web中的text輸入框的placehodler屬性:默認情況下顯示一些文字,當輸入新的文字后自然消失
這里需要對原本textbox的模板進行小的修改:直接看一下代碼
<TextBox Height="80" Width="450" x:Name="web_param_addr_tbx" Margin="5,0,0,0" > <TextBox.Resources> <VisualBrush x:Key="HelpBrush" TileMode="None" Opacity="0.3" Stretch="None" AlignmentX="Left" AlignmentY="Top"> <VisualBrush.Visual> <TextBlock FontStyle="Normal" FontSize="14" TextWrapping="Wrap" Width="430" Text='名稱和域名之間用"半角冒號"分割,多個測試地址以"半角分號"分割.例如:廣電:www.jscndata.com;大電視:ww.bigtv.cn'/> </VisualBrush.Visual> </VisualBrush> </TextBox.Resources> <TextBox.Style> <Style TargetType="TextBox"> <Setter Property="Width" Value="450"/> <Setter Property="Height" Value="64"/> <Setter Property="FontFamily" Value="{StaticResource fontFamily}"/> <Setter Property="FontSize" Value="14"/> <Setter Property="Foreground" Value="#FF333333"/> <Setter Property="BorderBrush" Value="#8F666666"/> <Setter Property="TextWrapping" Value="Wrap"/> <Setter Property="AcceptsReturn" Value="True"/> <Setter Property="VerticalScrollBarVisibility" Value="Visible"/> <!--<Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="TextBox"> <Border x:Name="Bd" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" SnapsToDevicePixels="true" > <ScrollViewer x:Name="PART_ContentHost" RenderOptions.ClearTypeHint="Enabled" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> </Border> </ControlTemplate> </Setter.Value> </Setter>--> <Style.Triggers> <Trigger Property="Text" Value="{x:Null}"> <Setter Property="Background" Value="{StaticResource HelpBrush}"/> </Trigger> <Trigger Property="Text" Value=""> <Setter Property="Background" Value="{StaticResource HelpBrush}"/> </Trigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox>