2013-11-11 1 views
0

Я создал пользовательское управление WPF. Этот элемент управления содержит одно текстовое поле и кнопку. Я хочу, чтобы в этом контроле было свойство для отметки воды.Хотите добавить текст водяного знака в качестве свойства в WPF User control?

Это поможет пользователю, что им нравится добавлять текст в качестве водяного знака. например WaterMark = «Введите пароль ...».

<wpfCtrl:PasswordBoxWin8 Background="CadetBlue" Margin="24,12,257,258" FontSize="26" /> 

Как добавить водяной знак в качестве элемента управления пользователя?

Passwordbox user control download.

ответ

2

Посмотри это для водяного знака

Watermark/hint text TextBox in WPF

В основном добавить текстовый блок, который находится над вами текстовым полем, а затем скрыть его, когда вы не хотите, чтобы водяной знак, показанный больше.

Если вы хотите создать собственный текст, создайте свойство зависимостей и привяжите его к свойству 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, что вы можете установить

+0

Я уже видел, что ответ, но они применяются Text = «Эта подсказка dissappears как вы типа ...» в самом UserControl. Но я хочу, чтобы этот водяной знак был полем свойств, например, с/Height под названием WaterMark. Затем пользователь может ввести то, что им нравится. – Sagotharan

+0

Вы можете загрузить мой Usercontrol http://www.codeproject.com/Tips/678895/Button-Inside-passwordbox-like-Windows-8-in-WPF-Us – Sagotharan

+0

Darn David, Я искал тот же ответ ... Я совершенно уверен, что видел еще одно очень похожее решение ... :) – Noctis

0

Попробуйте добавить стиль для элемента управления:

Ресурс:

<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> 

И, как это использовать стиль в 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> 
+0

thankyou @aleksey Но еще раз прочитайте вопрос. Я не прошу только водяного знака. – Sagotharan