2011-01-28 8 views
1

私はキャンバス要素を持っており、グリッド線を描画したいので(エンジニアリングペーパーのように見えます)XAML Silverlightモデルについて理解する:キャンバスに線を追加する?

私はそれを見ると、そこにこれを行うにカップルの方法があります:キャンバスに

  1. 利用XAMLおよびコピー/貼り付け「パス」の要素は、トップを変える、左のプロパティ
  2. 使用コードへグリッド線を追加する
  3. データバインディング?

XAMLは簡単ですが扱いにくいです。 コードも簡単です。

私は最後のものについては分かりません。私はコントロールを構築するためにコードビハインドを使用することは、Winformsのやり方であると考え続けています。私は、「適切な方法」を行うことを好むでしょう。だから私は "トップ"と "左"の値のリストを作成し、それから生成された線を持っているだろうか?または、データバインディングはExcelのグリッドなどにデータを入れるために実際に使用されますか?

+0

ビルドする必要があることを事前に知っていますか...コードビハインドまたはXAMLのどちらでもデータを定義することができますが、データバインディングはデータを表すものであり、必ずしも別々のものではありませんエンティティ。 –

+0

私は事前に知っています。線は、キャンバスに図形を配置するのを助けるための静的補助です。 – Alan

答えて

1

コードを使用してください。グリッドの間隔を変更して調整する柔軟性と、DRYの原則に確実に従います。

あなたは次の擬似コードのようなものを書くことができます:

int width = 500; 
int height = 500; 
int increment = 5; 

int i = 0; 
public void DrawHorizontalLines() { 
    while (i <= height) { 
     DrawHorizontalLine(i); 
     i += increment; 
} 

public void DrawHorizontalLine(int startY) { 
    //pseduo code to draw line goes here 
    //line starts from X=0 and goes to X=width and begin Y spaces from the top 
} 

あなたが好きならば、あなたは簡単に、それによって/非表示を示して矩形を表示/非表示できるように、あなたは長方形内のすべての行を配置することができますグリッド。

1

ラインが静的である、つまりその位置が変化しない場合、私はスピードとシンプルさのためにコードビハインドでそれらを追加します。

データバインディングは、動的なデータ、つまり変更するデータをバインドするのに適しています。また、XAMLのデータの外観をテンプレートとして定義することで、UIを「スキン」または「テーマ」にすることができます。しかし、あなたの場合、私は単純なアプローチがおそらく最高だと思います。

関連する問題