C# 为输入创建非矩形控件
在为Windows Phone编写应用程序时,我想创建自定义控件,该控件继承自C# 为输入创建非矩形控件,c#,wpf,windows-phone-7,controls,C#,Wpf,Windows Phone 7,Controls,在为Windows Phone编写应用程序时,我想创建自定义控件,该控件继承自TextBlock。但此控件的形式不应为矩形。我尝试使用Blend来完成此任务,但找不到用于更改控件形式的属性 在上面的图像上有控制的示意图。我想,有可能设置控制角的坐标,但我没有找到。谢谢。这个问题可以通过几种方式解决,我选择使用一个模板和他们的图形。在角色中,图形将执行标准的矩形。无法设置TextBlock的模板,因此我选择了一个更通用的控件-Label 例如: <Style TargetType="{x:
TextBlock
。但此控件的形式不应为矩形。我尝试使用Blend来完成此任务,但找不到用于更改控件形式的属性
在上面的图像上有控制的示意图。我想,有可能设置控制角的坐标,但我没有找到。谢谢。这个问题可以通过几种方式解决,我选择使用一个
模板
和他们的图形。在角色中,图形将执行标准的矩形
。无法设置TextBlock
的模板,因此我选择了一个更通用的控件-Label
例如:
<Style TargetType="{x:Type Label}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border Background="{TemplateBinding Background}">
<Grid>
<Rectangle Width="30" Height="70" Fill="Gainsboro" StrokeThickness="1" Margin="0,0,0,10" Panel.ZIndex="0" />
<ContentPresenter HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="33,0,0,25" Panel.ZIndex="1" />
<Rectangle MinWidth="55" Height="30" StrokeThickness="1" Fill="Gainsboro" HorizontalAlignment="Left" Margin="30,30,0,0" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
输出
当然,您需要更改模板
,以满足您的需要
注意以下几种方法
:
- 要获得更复杂的方法和更高级的方法,您可以使用自己的
,在装饰器
的帮助下,您将绘制对象。示例-DrawingContext
- 使用
的属性(其中为几何图形
),设置所需的图形形状。示例-路径
文本框的外观,而不是继承?谢谢!windows phone中并没有标签控件,WPF中只有类装饰器,但我将以这种方式重写。
<Label Background="Transparent" Width="200" Height="90" Content="Test your label" />