2013-12-07 3 views
2

Я разрабатываю приложение для изучения языка в C#. Это приложение имеет одну часть, которая соответствует слову слово. в этой части у меня 2 столбца. левый столбец имеет главное слово, а правый столбец имеет значение слова. Я хочу, чтобы пользователь нажал кнопку в левом столбце. когда релиз щелкнет привязкой линии к указателю мыши, и когда щелкните по значению линии привязки к кнопке правого столбца, как рисовать линию в Photoshop, или скажите мне больше изучения языка. Спасибо.Рисовать линию между двумя кнопками в wpf

enter image description here

+0

Рисовать линию, используя [DrawingVisual] (HTTP: // MSDN. microsoft.com/en-us/library/system.windows.media.drawingvisual.aspx). –

ответ

2

Вы можете использовать Canvas макет для вашего приложения.

Я не знаю вашего кода, но я закодировал this.

В XAML управления файл Canvas выглядит следующим образом:

<Canvas Name="myCanvas"> 
    <Button Name="btn1" Content="Asia" Width="100" Height="30" Click="btn1_Click" Canvas.Left="201" Canvas.Top="143"/> 
    <Button Name="btn2" Content="Arabic" Canvas.Left="473" Width="100" Height="30" Canvas.Top="93"/> 
</Canvas> 

В .cs файл btn1_Click функция должна осуществляться следующим образом:

private void btn1_Click(object sender, RoutedEventArgs e) 
    { 
     Point btn1Point = btn1.TransformToAncestor(this).Transform(new Point(0, 0)); 
     Point btn2Point = btn2.TransformToAncestor(this).Transform(new Point(0, 0)); 
     Line l = new Line(); 
     l.Stroke = new SolidColorBrush(Colors.Black); 
     l.StrokeThickness = 2.0; 
     l.X1 = btn1Point.X + btn1.ActualWidth; 
     l.X2 = btn2Point.X; 
     l.Y1 = btn1Point.Y + btn1.ActualHeight/2; 
     l.Y2 = btn2Point.Y + btn2.ActualHeight/2; 
     myCanvas.Children.Add(l); 
    } 
+0

Спасибо. это сработало. –

Смежные вопросы