Muh*_*nan 18 wpf styles textbox
需要为基于wpf的文本框设置平面边框样式...真的很惊讶地看到没有简单的方法来获取这个像winforms文本框中的BorderStyle.FixedSingle
是否有任何简单的方法来为wpf文本框完成此操作
Mic*_*haw 17
这样做的方法是使用控件模板自己绘制边框.你可以通过许多不同的方式做到这一点,下面是一对夫妇供你看.
快速入侵方法:
<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>
Run Code Online (Sandbox Code Playgroud)
然后使用资源...
<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>
Run Code Online (Sandbox Code Playgroud)
然后你可以使用这种风格:
<TextBox Style="{StaticResource ResourceKey=flatTextBox}" />
Run Code Online (Sandbox Code Playgroud)
<TextBox BorderThickness="1" BorderBrush="Black">
Run Code Online (Sandbox Code Playgroud)
试试用黑色或灰色