我在网上搜索带圆角的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>
我想找出什么是
<ScrollViewer x:Name="PART_ContentHost" />
详细说明如果从中删除此行,为什么不能正常使用我的模板, 请详细告诉我。
非常感谢。
答案 0 :(得分:6)
名为“PART_ContentHost”的部分包含控件核心,除了装饰之外,这是文本框本身。后面的文本框代码将查找它,因此如果重命名delete,则控件将不起作用。 在这种情况下,内容是可滚动的(因为文本框可以水平和垂直滚动文本)。
答案 1 :(得分:5)
如果你需要一个带圆角的简单文本框,你可以这样做:
<Border Padding="5" CornerRadius="5" BorderThickness="1" BorderBrush="LightGray" SnapsToDevicePixels="True" Background="White">
<TextBox Background="Transparent" BorderThickness="0">This is beautifull ;)</TextBox>
</Border>
答案 2 :(得分:2)
使用xaml deign的这一部分:
<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>
答案 3 :(得分:1)
ScrollViewer
包含控件的实际内容。您的控件不是真正的文本框,而是围绕ScrollViewer的边框(带圆角),然后您需要将文本放入其中。如果您不需要滚动,可以用文本框替换ScrollViewer,即:
变化
<ScrollViewer x:Name="PART_ContentHost" />
到
<TextBox x:Name="PART_ContentHost" />