我创建了一个 WPF 用户控件。该控件包含一个文本框和按钮。我想要该控件中的水印属性。
这将帮助用户将他们喜欢的文本添加为水印。像 WaterMark="输入密码..."。
<wpfCtrl:PasswordBoxWin8 Background="CadetBlue" Margin="24,12,257,258" FontSize="26" />
如何在我的用户控件中添加水印作为属性?
我创建了一个 WPF 用户控件。该控件包含一个文本框和按钮。我想要该控件中的水印属性。
这将帮助用户将他们喜欢的文本添加为水印。像 WaterMark="输入密码..."。
<wpfCtrl:PasswordBoxWin8 Background="CadetBlue" Margin="24,12,257,258" FontSize="26" />
如何在我的用户控件中添加水印作为属性?
看看这个水印
基本上添加一个位于文本框上方的文本块,然后在您不想再显示水印时将其隐藏。
如果您想要自定义文本,请创建一个依赖属性并将其绑定到文本块的Text
属性。这样,用户可以指定他们想要的任何文本。
public string WaterMark
{
get { return (string )this.GetValue(WaterMarkProperty); }
set { this.SetValue(WaterMarkProperty, value); }
}
public static readonly DependencyProperty WaterMarkProperty = DependencyProperty.Register(
"WaterMark", typeof(string ), typeof(PasswordBoxWin8));
然后在 XAML 中绑定到它
<TextBlock Text="{Binding WaterMark, ElementName=YourUserControlName}" />
这样,您的用户控件就有一个属性WaterMark
,您可以设置它
Try add style for your control:
Resourse:
<SolidColorBrush x:Key="watermarkBackground" Color="White" />
<SolidColorBrush x:Key="watermarkForeground" Color="LightSteelBlue" />
<SolidColorBrush x:Key="watermarkBorder" Color="Indigo" />
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<Style x:Key="MyStyle" TargetType="Grid" >
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="20,0" />
</Style>
And, how this style use in MainWindow.xaml
<Grid Background="{StaticResource watermarkBackground}" Style="{StaticResource MyStyle}" >
<TextBlock Text="Your water mark"
Foreground="{StaticResource watermarkForeground}"
Visibility="{Binding ElementName=txtUserEntry, Path=Text.IsEmpty, Converter={StaticResource BooleanToVisibilityConverter}}" />
<TextBox Background="Transparent" BorderBrush="{StaticResource watermarkBorder}" />
</Grid>