今、私は2つのリストボックスを持っています、私はこのリストボックスのリストボックスアイテムから別のリストボックスのリストボックスアイテムに線を引きたいです。可能であれば、2つのlistboxitemは水平ではありません。listboxitem座標を取得する方法???
2 に答える
0
まず、接続したい両方のアイテムを取得する必要があります。両方のアイテムを持っている場合は、ポイントの計算を開始できます。両方のリストボックスの親 Panel を探し、その Panel に対するポイントを計算します。
例として、2 つのリストボックス内にグリッドを作成します。あとは、両方のアイテムのポイントを計算するだけです。ここで、計算された 2 つのポイント (point1 = x1, y1 および point2 = x2, y2) を含む Line を Grid に追加します。
でも覚えておいて。スクロールするとポイントを更新する必要があるため、見た目ほど簡単ではありません。そしてまさにその時点で、次の問題が発生します。ビュー (接続するアイテム) をスクロールしても、線は表示されたままです。したがって、線が表示されるかどうかを計算する必要があります...
最良の方法は、DataGrid を作成して 2 つのセルを接続することです。これは、2 つの異なるリストボックスよりも簡単だからです。
于 2012-08-24T10:41:29.070 に答える
0
This Code worked for me (here I get the coordinates of the selected item relative to its hosted window):
object selectedEntry = (object)myListBox.SelectedItem;
ListBoxItem lbi = this.myListBox.ItemContainerGenerator.ContainerFromItem(selectedEntry) as ListBoxItem;
Point p = lbi.TranslatePoint(new Point(0, 0), Window.GetWindow(lbi));
于 2012-08-24T10:06:22.910 に答える