wpf文本框平面边框样式

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)


Kis*_*mar 7

<TextBox BorderThickness="1" BorderBrush="Black">
Run Code Online (Sandbox Code Playgroud)

试试用黑色或灰色

  • 这仅在文本框未聚焦时才起作用.当它获得焦点时,边框会以两个蓝色阴影突出显示. (6认同)