我需要在WPF中创建一个自定义标签,带有这样的边框
所以我创建了一个新的自定义控件TextPlaceholder
,它继承了System.Windows.Controls.Label
现在,如何在图像中对边框进行控制? 我可以在容器的资源中使用模板
<UserControl.Resources>
<Style x:Key="InfoLabel"
TargetType="{x:Type TextPlaceholder}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextPlaceholder}">
<Border BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true"
??????? >
但是我想要一个控件本身就是这样,而不需要在其容器中添加额外的东西......
答案 0 :(得分:0)
在TextBlock下放置一个包含九个Border元素的Grid。向后工作以找到中心行和列宽。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Width="Auto"/>
<RowDefinition Width="######"/>
<RowDefinition Width="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>... Similar to Rows ...</Grid.ColumnDefinitions>
<Border Grid.Row="0" Grid.Column="0" BorderBrush="Black" BorderThickness="1 1 0 0"/>
... etc ...
<TextBlock Grid.RowSpan="3" Grid.ColumnSpan="3" Text="My Label" />
</Grid>
你甚至可以做圆角,或任何你想要的方式。
当然,你也可以创建一个Path,然后用这种方式绘制图元。