2014-01-23 29 views
0

我想在Windows手機應用程序的XAML中創建自定義水印文本框。我有大部分工作。如果文本框綁定到包含數據的字段,則水印文本將變爲不可見。但是,如果該字段開始爲空,然後我在控件中輸入文本,則無法將水印設置爲不可見。問題創建WatermarkTextBox xaml

我正在偵聽TextChanged事件,但在這種情況下Text屬性保持爲空。有任何想法嗎?

public class WatermarkTextBox : TextBox 
{ 
    public WatermarkTextBox() 
    { 
     this.TextChanged += WatermarkTextBox_TextChanged; 

    } 

    public string WatermarkText 
    { 
     get { return (string)this.GetValue(WatermarkTextProperty); } 
     set { this.SetValue(WatermarkTextProperty, value); } 
    } 

    public static readonly DependencyProperty WatermarkTextProperty = DependencyProperty.Register(
     "WatermarkText", typeof(string), typeof(WatermarkTextBox), new PropertyMetadata(string.Empty)); 


    public Visibility WatermarkTextVisibility 
    { 
     get { return (Visibility)this.GetValue(WatermarkTextVisibilityProperty); } 
     set { this.SetValue(WatermarkTextVisibilityProperty, value); } 
    } 

    public static readonly DependencyProperty WatermarkTextVisibilityProperty = DependencyProperty.Register(
     "WatermarkTextVisibility", typeof(Visibility), typeof(WatermarkTextBox), new PropertyMetadata(Visibility.Visible)); 



    void WatermarkTextBox_TextChanged(object sender, TextChangedEventArgs e) 
    { 

     this.WatermarkTextVisibility = string.IsNullOrEmpty(this.Text) ? Visibility.Visible : System.Windows.Visibility.Collapsed; 
    } 


} 

回答

-1

看看我Watermark Textbox For C#/XAML WinRT Apps上的NuGet

如果你想那麼源檢查

WinRT XAML Toolkit

Callisto

請沒有在上面的鏈接打開只有CS文件,你可能需要爲它的主題,所以檢查出在回購的generic.xaml文件。

+0

您是否有任何可用的源代碼。當我安裝nuget包時,我只能得到dll。我想知道我需要做什麼來解決這個未來的應用程序。 –

+0

結帳更新了答案。 – Xyroid