나는이 텍스트 상자를 트릭 : 다음 내 스타일을 선택 가지고사용하여 사용자 지정 속성
<Style TargetType="TextBox" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Style.Resources>
<VisualBrush x:Key="CueBannerBrush" AlignmentX="Left" AlignmentY="Center" Stretch="None">
<VisualBrush.Visual>
<Label Content="Enter your message here..." Foreground="LightGray" Padding="10 0 0 0" />
</VisualBrush.Visual>
</VisualBrush>
</Style.Resources>
<Style.Triggers>
<Trigger Property="Text" Value="{x:Static sys:String.Empty}">
<Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
</Trigger>
<Trigger Property="Text" Value="{x:Null}">
<Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter Property="Background" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
그러나이 WatermarkText
에 대한 XAML
속성 TextBox
을 확장하는 방법이있다 그것을 사용하거나 그것을 할 수있는 다른 방법이 있습니까? (C# 등)?
<TextBox WatermarkText="Enter your message here..."/>
현재 접근법을 사용하고 문자열에 피기 백하는 속성이있는 경우. 여기에 "여기에 메시지를 입력하십시오."를''{TemplateBinding Tag} "'로 바꾸고'Tag' 속성을 이용하여'
@ChrisW. 그것은 정상적으로 작동하지만 일단 내 '태그'를 사용하면 XAML 요소를 더 이상 확장 할 수 없습니다. 더 나은 방법이 있어야합니다 ... – Alexandru
사람들은 빠른 Google 검색으로 찾을 수있는 여러 가지 방법으로 해왔습니다. 개인적으로 필자는 필자가 TextBlock이 포커스가 추가 된 태그에 바인딩 된 추가 된 TextBlock을 사용하여 사용자 지정 템플릿을 만든 것으로 생각하고 텍스트 속성 값 = {x : Null} false (datatrigger를 사용하면 false) 일 때 가시성이 축소되었습니다. 내가 생각했던 것에서 오래 걸리지 않았다. 10mins처럼. –