XAML中定义的自定义矩形

时间:2011-07-18 23:49:51

标签: silverlight

我有一个奇怪的问题和需要。基本上,我需要一个矩形控件,对于四个边中的每个边(以及所有笔划值,例如破折号等),可以具有不同的边框粗细不同的颜色strokeBorder控件让我在一半的位置允许矩形的每一边有不同的厚度值,但是不允许为每个边使用不同的颜色画笔。

我尝试使用标准Canvas并将Line对齐到每一方,但它们不会基于HorizontalAlighnmentVerticalAlignment进行捕捉 - 某个绝对位置属性的数量是必需的。

我会知道矩形的宽度,但不知道它的高度 - 这意味着矩形的垂直边需要动态调整大小。

有关如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

忘记画布。捕捉和对齐对画布的子项没有影响。它只支持其子元素的绝对定位。

您可以定义一个包含4个段的多边形*,每个段都有名称,以便您可以访问其属性,并将设置应用于每个段。多边形拉伸形状以适合容器(如网格),但不会扭曲笔划宽度。

最好创建一个包含上述所有内容的用户控件,并将4个笔触和颜色显示为Dependency属性,以便绑定它们。

注意:使用Expression Blend创作更容易,但我意识到很多人都没有,所以稍后当我回到自己的PC时会添加示例Xaml。 < / p>

答案 1 :(得分:0)

也许你可以建立一个3x3网格:

1 2 3
4 5 6
7 8 9

将底部笔划设置为2,将右笔划设置为4,将左笔划设置为6,将顶部笔划设置为使用不同的颜色。矩形内容将位于单元格5中。