Ответ 1
В WPF вы можете изменять или воссоздавать внешний вид элементов управления. Поэтому, если ваш пример, что они сделали, они изменили внешний вид TextBox, изменив ControlTemplate
существующего TextBox
. Поэтому, чтобы увидеть и изучить фрагмент кода, просто используйте приведенный ниже код
<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>
Итак, мы объявили статический ресурс в разделе "Ресурсы" окна, и мы использовали ресурс TextBoxBaseControlTemplate в свойстве Template
TextBox
как Template="{StaticResource TextBoxBaseControlTemplate}"
.
Шаблоны для настройки элементов управления WPF просто ссылаются на этот документ, чтобы получить представление