コード内の線要素をCavnasObject(サイズ0、0)に追加しています。ただし、表示されません。そこで、同じプロパティを持つxamlに同じ行オブジェクトを追加しました。XAMLでは表示されますが、C#では表示されません。これがC#での私のコードです:
Line line = new Line()
{
X1 = points[0].X,
Y1 = points[0].Y,
X2 = points[1].X,
Y2 = points[1].Y,
Stroke = new SolidColorBrush(Colors.Red),
StrokeThickness = 4,
Visibility = System.Windows.Visibility.Visible
};
lineCanvas.Children.Add(line);
は表示されていません。そして、ここに示されている行があります:
<StackPanel Grid.Column="1">
<Grid Height="0">
<Canvas Name="lineCanvas">
<Line X1="1" X2="240" Y1="33" Y2="33" StrokeThickness="4" Stroke="Red"/>
</Canvas>
</Grid>
<DataGrid Name="dataGrid" Grid.Column="0" ItemsSource="{Binding ViewMap}" CanUserReorderColumns="False"
CanUserSortColumns="False" AutoGenerateColumns="False" AllowDrop="True"
DragEnter="dataGrid_DragEnter" Drop="dataGrid_Drop" SelectionUnit="FullRow"
HeadersVisibility="Column" IsReadOnly="True" Panel.ZIndex="0" MouseDown="dataGrid_MouseDown">
<DataGrid.CellStyle>#
....
...
あなた自身なら、なぜグリッドの高さ=0なのか。データグリッドのデータセルを線で接続しています。そして、線に配置するために、私は非常に小さなキャンバスオブジェクトを使用しており、キャンバスから線を表示しているだけです。
だから、誰もが何が悪いのか考えていますか?XAMLの値はコードから取得されます。