2010-03-19 12 views
16

müssen für wpf basierte Textbox flachen Rand Stil haben ... wirklich überrascht, dass es zu sehen, keine einfache Möglichkeit, das ist wie in winforms Textbox BorderStyle.FixedSinglewpf Textbox flachen Rand Stil

war zu erhalten, ist es eine einfache Möglichkeit dies zu erhalten für wpf Textbox gemacht durch schwarze

Antwort

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

gerade dies versuchen oder

+6

Dies scheint nur zu arbeiten, während das Textfeld nicht fokussiert ist. Wenn der Fokus erreicht wird, wird die Umrandung mit zwei blauen Schattierungen hervorgehoben. –

16

Die Art und Weise grau, dies zu tun ist, eine Steuerelementvorlage zu verwenden, um die Grenze selbst zu ziehen. Sie können dies auf viele verschiedene Arten tun, Heres ein Paar für Sie zu sehen.

Der schnelle Hack Ansatz:

<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> 

und dann Theres Ressourcen ...

<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> 

und dann können Sie den Stil verwenden:

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