2011-12-26 10 views
1

実行時にタイムラインを作成するアプリケーションを開発しています。だから、グリッド(データグリッドではない)を作成し、タイムスタンプを等間隔(60ピクセル/時 - 1ピクセル/分)にする必要があります。グリッドの列に時間スケールを追加する

私はすでに、プログラムで列を作成する方法を知っている:

public void ColumnCreator(double totalInterval, double divPattern) 
{ 
    int divisionPattern = Convert.ToInt16(divPattern); 
    if (divisionPattern < totalInterval) 
    { 
     for (int i = 0; i < totalInterval; i += divisionPattern) 
     { 
      internalGrid.ColumnDefinitions.Add(new ColumnDefinition() { 
       Width = new GridLength(divisionPattern, GridUnitType.Pixel) }); 
     } 
    } 
} 

をしかし、これらの行は同期されません。誰かが私のための解決策を持っていますか?事前8)で

おかげで

+0

「線は同期していません」という意味を本当に述べていませんか?とにかく、私はこのレイアウトにグリッド/カラムシステムを使用しません。明示的に線を配置するキャンバスを試してください。アイデアについては、この記事を参照してください。http://www.codeproject.com/KB/WPF/WpfWinFormsBulletGraphs.aspx – ColinE

+0

私にお答えいただきありがとうございます、私はあなたの提案を検討します。ありがとうございました! –

答えて

1

としては、特にリアルタイム可視化Gridはあなたが作っできるより悪い選択であるかもしれために指摘されました。 Gridは、コントロールのレイアウト管理を含むを担当しており、パフォーマンスに大きな影響を与えます。

Canvasを使用してください。描画にはShapePathを使用してください。 http://msdn.microsoft.com/en-us/library/ms747393.aspx

Pixelsを使用しますが、WPFで何かの次元を宣言するに依存しない方法デバイスですWPF Units、によって提供されていないでください:あなたは、少なくともこのリンクを読み取る必要がリアルタイムUI上で、合理的なパフォーマンスをachiveします。したがって、あなたの描画は、異なるモニタで割合を維持しますscreen sizesdpi