为输入创建非矩形控件

时间:2013-07-12 22:03:24

标签: c# wpf windows-phone-7 controls

为Windows Phone编写应用程序,我想创建继承自TextBlock的自定义控件。但是这种控制的形式不应该是矩形的。我尝试使用Blend执行此任务,但我找不到更改控件形式的属性。

desirable form of custom control

在上图中有控制的示意图。我想,有可能设置控制角度的坐标,但我没有找到它。谢谢。

1 个答案:

答案 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

enter image description here

当然,您需要更改Template以满足您的需求。

Note about several ways