为Windows Phone编写应用程序,我想创建继承自TextBlock
的自定义控件。但是这种控制的形式不应该是矩形的。我尝试使用Blend执行此任务,但我找不到更改控件形式的属性。
在上图中有控制的示意图。我想,有可能设置控制角度的坐标,但我没有找到它。谢谢。
答案 0 :(得分:2)
这个问题可以通过几种方式解决,我选择使用Template
和他们的数字。在数字的作用将执行标准Rectangles
。无法设置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>
在XAML中声明Label
:
<Label Background="Transparent" Width="200" Height="90" Content="Test your label" />
Output
当然,您需要更改Template
以满足您的需求。
Note about several ways
:
对于更复杂的方法和更高级的方法,您可以使用自己的Decorator
,在DrawingContext
的帮助下,您将绘制您的对象。示例 - How can I draw a border with squared corners in wpf?
使用Geometry
的属性,其中Path
,设置所需的图形形状。示例 - WPF freeform border control。