我有一个奇怪的问题和需要。基本上,我需要一个矩形控件,对于四个边中的每个边(以及所有笔划值,例如破折号等),可以具有不同的边框粗细和不同的颜色stroke
。 Border
控件让我在一半的位置允许矩形的每一边有不同的厚度值,但是不允许为每个边使用不同的颜色画笔。
我尝试使用标准Canvas
并将Line
对齐到每一方,但它们不会基于HorizontalAlighnment
或VerticalAlignment
进行捕捉 - 某个绝对位置属性的数量是必需的。
我会知道矩形的宽度,但不知道它的高度 - 这意味着矩形的垂直边需要动态调整大小。
有关如何做到这一点的任何想法?
答案 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中。