我想TextBox
使用 XAML 和一个自定义类进行自定义,该类具有 TextBox 的附加属性,称为PosType
. PosType
将呈现在侧面的红色三角形内。
TextBox
应该是一个普通的文本框,从左边有足够的边距,不会拦截其他文本。这是显示文本框所需外观的图像。
控制类:
public class PosTextBox : TextBox
{
public string PosType { get; set; }
}
**我写的样式:(与我想要的非常相似,除了这里我使用了边框和其他部分可能不准确。**
xmlns:Pro="clr-namespace:Prox.XamlControls">
<!-- Custom TextBox -->
<Style x:Key="c1PosTextBox" TargetType="{x:Type Pro:PosTextBox}" >
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Pro:PosTextBox}">
<Grid>
<Border>
<Border>
<TextBlock Text ="{TemplateBinding Path= Pro:PosType}"></TextBlock>
<!--<TextBlock Text ="{TemplateBinding ElementName=Pro:PosTextBox, Path= Pro:PosType}"></TextBlock>-->
</Border>
</Border>
<Border Margin="5,10,5,10">
<ContentPresenter Name="Content" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" TextBlock.Foreground="White"></ContentPresenter>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如何创建此自定义文本框并获得所需的外观?
编辑: 请指导我根据我上面提到的相同方法解决小问题。