Class LineLengthWindow
Dim position1 As Point
Dim position2 As Point
Private Sub paintLine(ByVal lineColor As Brush, ByVal position As Point)
Dim newLine As Line = New Line()
newLine.Stroke = Brushes.Black
newLine.X1 = position1.X
newLine.X2 = position2.X
newLine.Y1 = position1.Y
newLine.Y2 = position2.Y
lineCanvas.Children.Add(newLine)
End Sub
Private Function Length() As Double
Dim xDistance As Integer = position1.X - position2.X
Dim yDistance As Integer = position1.Y - position2.Y
Return Math.Sqrt((xDistance ^ 2) + (yDistance ^ 2))
End Function ' end Length function
Private Sub lineCanvas_MouseLeftButtonDown(ByVal sender As Object, ByVal e _
As System.Windows.Input.MouseButtonEventArgs) Handles lineCanvas.MouseLeftButtonDown
' clear Label text content
lengthOutputLabel.Content = ""
' get x and y coordinates of mouse click
Dim mousePosition As Point = e.GetPosition(lineCanvas)
paintLine(Brushes.Black, mousePosition)
End Sub
Private Sub lineCanvas_MouseLeftButtonUp(ByVal sender As Object, ByVal e _
As System.Windows.Input.MouseButtonEventArgs) Handles lineCanvas.MouseLeftButtonUp
' get endpoints
Dim mousePosition As Point = e.GetPosition(lineCanvas)
paintLine(Brushes.Black, mousePosition)
' distance between two points
Dim dblDistance As Double = Length()
' draw line connecting the two points
' display distance in Label
lengthOutputLabel.Content = String.Format("{0:F}", dblDistance)
End Sub
End Class
<Window x:Class="LineLengthWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Line Length" Height="300" Width="300">
<Grid>
<StackPanel Name="outputStackPanel" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Bottom">
<Label Height="Auto" Name="lengthLabel" Width="Auto">Length =</Label>
<Label Height="Auto" Name="lengthOutputLabel" Width="Auto"></Label>
</StackPanel>
<Canvas Name="lineCanvas" Margin="0" HorizontalAlignment="Right" Width="Auto" Background="White" />
</Grid>
</Window>

New Topic/Question
Reply



MultiQuote






|