WPF中的圆角文本框

Kūr*_*osh 5 c# wpf

我在网上搜索带圆角的TextBox,并找到如下的xaml代码:

 <Style TargetType="{x:Type my1:CustomTextBox}">
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate >
                        <Border Background="{TemplateBinding Background}" x:Name="Bd" 
BorderThickness="2" CornerRadius="5" BorderBrush="#FFF9EAB6">
                            ***<ScrollViewer x:Name="PART_ContentHost" />***
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="Bd" Property="BorderBrush" Value="#FFC7B0B0"/>
                            </Trigger>
                            <Trigger Property="IsKeyboardFocused" Value="True">
                                <Setter TargetName="Bd" Property="BorderBrush" Value="#FFC7B0B0"/>
                                <Setter Property="Foreground" Value="Black"/>
                            </Trigger>
                            <Trigger Property="IsKeyboardFocused" Value="False">
                                <Setter Property="Foreground" Value="#FFC7B0B0"/>
                            </Trigger>
                            <Trigger Property="Width" Value="Auto">
                                <Setter Property="MinWidth" Value="120"/>
                            </Trigger>
                            <Trigger Property="Height" Value="Auto">
                                <Setter Property="MinHeight" Value="27"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>

                </Setter.Value>
            </Setter>
        </Style>
Run Code Online (Sandbox Code Playgroud)

我想知道是什么

<ScrollViewer x:Name="PART_ContentHost" />
Run Code Online (Sandbox Code Playgroud)

详细说明为什么不正确地工作我的模板如果从中删除这一行,请详细告诉我.

非常感谢.

小智 6

名为"PART_ContentHost"的部分包含控件核心,除了装饰之外,这是文本框本身.后面的文本框代码将查找它,因此如果重命名delete,则控件将不起作用.在这种情况下,内容是可滚动的(因为文本框可以水平和垂直滚动文本).


Smo*_*lla 5

如果你需要一个带圆角的简单文本框,你可以这样做:

<Border Padding="5" CornerRadius="5" BorderThickness="1" BorderBrush="LightGray" SnapsToDevicePixels="True" Background="White">
    <TextBox Background="Transparent" BorderThickness="0">This is beautifull ;)</TextBox>
</Border>
Run Code Online (Sandbox Code Playgroud)


小智 5

使用 xaml 设计的这一部分:

 <TextBox x:Name="usernameText" Height="30" Width="300"  TextWrapping="Wrap" Text="" FontSize="20" HorizontalContentAlignment="Center" LostFocus="usernameText_LostFocus">
                        <TextBox.Resources>
                            <Style TargetType="{x:Type Border}">
                                <Setter Property="CornerRadius" Value="10"/>
                            </Style>
                        </TextBox.Resources>
                    </TextBox>
Run Code Online (Sandbox Code Playgroud)

形状会是这样