XAML TextBox周围有2个不同颜色的边框

hyrbngr7  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(174)

我想创建一个静态样式,其中的TextBox元素将有2个不同颜色的边框围绕着它。我可以做到这一点吗?

我已经有了一个圆形的文本框,但我不知道如何在它周围添加另一个。

<Style TargetType="{x:Type TextBox}" x:Key="RoundTextBox">
           
            <Style.Resources>
                <Style TargetType="{x:Type Border}">
                    <Setter Property="CornerRadius" Value="3"/>
                </Style>
            </Style.Resources>

            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                        <GradientStop Color="#FF32C17C"/>
                        <GradientStop Color="#FF01312F" Offset="1"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Foreground" Value="White"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="BorderBrush" Value="#FF69FF55"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="FontWeight" Value="Medium"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="Margin" Value="20,10,0,-5"/>
        </Style>

这是我的文本框样式代码。谢谢所有的答案:)

9lowa7mx

9lowa7mx1#

您可以更改文本框的控件模板,并在边框内定义另一个边框。

<Window.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="MinWidth" Value="120" />
        <Setter Property="MinHeight" Value="20" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TextBox}">
                    <Border
                        BorderBrush="Red"
                        BorderThickness="1"
                        CornerRadius="2">
                        <Border
                            Name="Border"
                            Background="White"
                            BorderBrush="Gray"
                            BorderThickness="1"
                            CornerRadius="2">
                            <ScrollViewer x:Name="PART_ContentHost" Margin="0" />
                        </Border>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>
<Grid>
    <TextBox
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Text="Test" />
</Grid>

这就是结果!

有关文本框样式和模板的详细信息,请单击here

相关问题