2010-03-19 39 views
16

需要有平坦的边框样式基于WPF的文本框...真的惊讶地看到有没有简单的方法来得到这个就像是在WinForms的文本BorderStyle.FixedSingleWPF文本框平面的边缘风格

有没有什么简单的方法完成这件事的WPF文本框

回答

6
<TextBox BorderThickness="1" BorderBrush="Black"> 

只是黑色试试这个或灰色

+6

这似乎只工作而文本框不重点。当它获得焦点时,边框将突出显示两个蓝色阴影。 – 2011-10-17 23:54:10

16

做到这一点的方法是使用一个控制模板,自己绘制的边界。你可以用许多不同的方式做到这一点,继承人有几个让你看看。

快速破解方法:

<TextBox> 
    <TextBox.Template> 
     <ControlTemplate TargetType="{x:Type TextBox}"> 
      <Grid> 
       <Rectangle Stroke="{StaticResource ResourceKey=detailMarkBrush}" StrokeThickness="1"/> 
       <TextBox Margin="1" Text="{TemplateBinding Text}" BorderThickness="0"/> 
      </Grid> 
     </ControlTemplate> 
    </TextBox.Template> 
</TextBox> 

,然后使用资源那里有...

<ResourceDictionary> 
    <Color x:Key="detailMark">#FFA1A9B3</Color> 
    <SolidColorBrush x:Key="detailMarkBrush" Color="{StaticResource ResourceKey=detailMark}" /> 
    <Style x:Key="flatTextBox" TargetType="{x:Type TextBox}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TextBox}"> 
        <Grid> 
         <Rectangle Stroke="{StaticResource ResourceKey=detailMarkBrush}" StrokeThickness="1"/> 
         <TextBox Margin="1" Text="{TemplateBinding Text}" BorderThickness="0"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

,然后你可以使用风格:

<TextBox Style="{StaticResource ResourceKey=flatTextBox}" />