2014-01-23 2 views
0

Windows Phone 응용 프로그램에 대해 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

체크 아웃 NuGet

Watermark Textbox For C#/XAML WinRT Apps

당신이 소스는 다음

WinRT XAML Toolkit

Callisto

하지 위의 링크는 CS 파일을 열어주십시오, 당신이해야 할 수도 있습니다 을 확인하려면 주제가 있으므로 repo에서 generic.xaml 파일을 확인하십시오.

+0

어디에서나 사용할 수있는 소스 코드가 있습니까? 너겟 패키지를 설치할 때, 나는 dll 만 얻는다. 앞으로의 모든 응용 프로그램에서이 문제를 해결하기 위해 내가해야 할 일이 무엇인지 알고 싶습니다. –

+0

업데이트 된 답변을 확인하십시오. – Xyroid