Wpf textbox flat border style

нужно иметь плоский стиль рамки для текстового поля на основе wpf... действительно удивлен, увидев, что нет простого способа получить это, как было в текстовом поле winforms BorderStyle.FixedSingle

есть ли простой способ сделать это для текстового поля wpf

Ответы

Ответ 1

Способ сделать это - использовать шаблон управления для рисования границы самостоятельно. Вы можете сделать это по-разному, вот пара для вас, чтобы посмотреть.

Быстрый подход к взлому:

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

а затем theres используя ресурсы...

<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}" />

Ответ 2

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

просто попробуйте сделать это черным или серым цветом