WPF边框和文本框问题.NET 3.5
问题描述:
我在文本框周围有一个圆角边框。显示时,尽管将“BorderThickness”属性设置为0并将“BorderBrush”设置为透明,但文本框的水平顶部和底部行仍显示出来。我怎样才能做文本框的边框不显示?WPF边框和文本框问题.NET 3.5
代码如下:
<Border Grid.Row="0" Grid.Column="0"
BorderBrush="DarkBlue"
BorderThickness="0.8"
CornerRadius="5"
Margin="5,10,3,10"
Height="Auto" Width="Auto"
Background="AliceBlue"
HorizontalAlignment="Left">
<TextBox x:Name="txtSearch"
Width="250"
Style="{StaticResource WatermarkedTextBox}"
VerticalAlignment="Center"
HorizontalAlignment="Left"
BorderBrush="Transparent"
BorderThickness="0"
Margin="1"/>
</Border>
任何想法,为什么正在显示的文本框的边界?
未遂#1:
我发现,罪魁祸首是附加的风格,即静态资源WatermarkedTextBox这是如下:
<Style x:Key="WatermarkedTextBox" TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Grid>
<TextBox Text="{Binding Text, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center"
Text="{TemplateBinding Tag}"
Margin="5,0,5,0"
Foreground="#FF808080"
FontStyle="Italic"
IsHitTestVisible="False"
x:Name="UserMessage"
Visibility="Hidden"/>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Text" Value=""/>
<Condition Property="IsKeyboardFocusWithin" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Visibility" TargetName="UserMessage" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
所以,我怎么能解决这个问题?
答
的罪魁祸首是在风格“WatermarkedTextbox”,所以设置了borderThickness属性设置为0设置文本框的边框是现在工作:
<Style x:Key="WatermarkedTextBox" TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Grid>
<TextBox BorderThickness="0"
Text="{Binding Text, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center"
Text="{TemplateBinding Tag}"
Margin="5,0,5,0"
Foreground="#FF808080"
FontStyle="Italic"
IsHitTestVisible="False"
x:Name="UserMessage"
Visibility="Hidden"/>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Text" Value=""/>
<Condition Property="IsKeyboardFocusWithin" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Visibility" TargetName="UserMessage" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
有人知道为什么它是怎么回事?任何帮助将不胜感激。谢谢。 – user1624552