WPF圆角文本框 [英] WPF rounded corner textbox
问题描述
我不知道 WPF,现在正在学习它.我在 WPF 中寻找圆角 TextBox
.于是我搜了谷歌,发现了一段XAML
:
I don't know WPF and am now learning it. I was looking for rounded corners TextBox
in WPF. So I searched Google and found a piece of XAML
:
<!–Rounded Corner TextBoxes–>
<ControlTemplate x:Key="RoundTxtBoxBaseControlTemplate" TargetType="{x:Type Control}">
<Border Background="{TemplateBinding Background}" x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="6″>
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" TargetName="Bd"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<Trigger Property="Width" Value="Auto">
<Setter Property="MinWidth" Value="100″/>
</Trigger>
<Trigger Property="Height" Value="Auto">
<Setter Property="MinHeight" Value="20″/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
所以请告诉我将这个 XAML
粘贴到哪里.请帮我详细说明.我是 WPF 的初学者.
So please tell me where to paste this XAML
. Please help me in detail. I am a beginner in WPF.
推荐答案
在 WPF 中,您可以修改或重新创建控件的外观.因此,如果您的示例他们所做的是通过修改现有 TextBox
的 ControlTemplate
来更改 TextBox 的外观.因此,要查看和探索这段代码,只需使用以下代码
In WPF you can modify or recreate the look and feel of controls. So if your example what they have done is they changed the appearance of the TextBox by modifying the ControlTemplate
of the existing TextBox
. So to see and explore the piece of code just use the below code
<Window x:Class="WpfApplication4.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<ControlTemplate x:Key="TextBoxBaseControlTemplate" TargetType="{x:Type TextBoxBase}">
<Border Background="{TemplateBinding Background}"
x:Name="Bd" BorderBrush="Black"
BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10">
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" TargetName="Bd"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<Trigger Property="Width" Value="Auto">
<Setter Property="MinWidth" Value="100"/>
</Trigger>
<Trigger Property="Height" Value="Auto">
<Setter Property="MinHeight" Value="20"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<Grid>
<TextBox Template="{StaticResource TextBoxBaseControlTemplate}" Height="25" Margin="5"></TextBox>
</Grid>
所以我们在Window的Resource部分声明了一个静态资源,并且我们使用了TextBox
的Template
属性中的Resource TextBoxBaseControlTemplate作为Template="{StaticResource TextBoxBaseControlTemplate}"
.
So we have declared a static resource in the Resource section of the Window and we have used the Resource TextBoxBaseControlTemplate in the Template
property of the TextBox
as Template="{StaticResource TextBoxBaseControlTemplate}"
.
自定义 WPF 控件的模板只是参考这个文档来获得一个想法
Templates to Customize WPF Controls just refere this document to get an idea
http://msdn.microsoft.com/en-us/magazine/cc163497.aspx
这篇关于WPF圆角文本框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!