2011-07-18 8 views
0

私は奇妙な質問と必要が少しあります。基本的には、4辺(およびダッシュなどのすべてのストローク値)に対して異なる境界線の太さ(の異なる色)を持つ矩形コントロールstrokeが必要です。 Borderコントロールでは、四角形の各辺に異なる太さの値を割り当てることができますが、各辺に異なる色のブラシは使用できません。XAMLで定義されているカスタム矩形

私は標準Canvasを使用し、側面のそれぞれにLineをスナップしようとしたが、彼らはHorizontalAlighnmentまたはVerticalAlignmentに基づいてスナップしていない - 必要とされる絶対位置属性の特定の数。

私の矩形の幅はわかりますが、高さではありません。つまり、矩形の垂直辺を動的にサイズ調整する必要があります。

どうすればいいですか?

答えて

1

Canvasを忘れてしまいます。スナップやアラインメントはキャンバスの子には影響しません。子要素の絶対位置指定のみをサポートしています。

ポリゴン*は4つのセグメントで定義でき、それぞれのプロパティにアクセスできるように名前が付けられ、それぞれに設定が適用されます。ポリゴンコンテナ(グリッドのような)にフィットするストレッチ形ですが、ストロークの幅を歪ませません。

上記のすべてをラップし、4つのストロークと色を依存プロパティとして公開して、それらをバインドできるようにすることをお勧めします。

注:Expression Blendで作成する方がはるかに簡単ですが、多くの人がそれを持っていないことを認識していますので、後で自分のPCに戻ってXamlの例を追加します。

+0

興味深いアイデア!私は今日これを試してみるつもりです、私はあなたに結果を知らせます。 –

+0

うまく働いて、ありがとう! –

0

たぶん、あなたは3x3のグリッド構築することができ:

1 2 3 
4 5 6 
7 8 9 

をそして2の底部ストローク、4ストロークの右側の、6の左側のストロークと異なる色を使用して8の上部ストロークを設定します。矩形の内容はセル5になります。

+0

これは私が考えていたオプションですが、1-2-3,7-8-9,1-4-7または3-6-9にまたがる「Line」要素は得られません。どのようにそれを行うことができるかについての任意の考えですか? –

関連する問題