2017-08-02 99 views
0

我在文本框周围有一个圆角边框。显示时,尽管将“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> 

所以,我怎么能解决这个问题?

+0

有人知道为什么它是怎么回事?任何帮助将不胜感激。谢谢。 – user1624552

回答

0

的罪魁祸首是在风格“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>