Namespace Controls
Public Class MyCornerRadiusConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
If TypeOf value Is CornerRadius AndAlso targetType = GetType(String) Then
With DirectCast(value, CornerRadius)
If .BottomLeft = .BottomRight AndAlso .BottomLeft = .TopLeft AndAlso .BottomLeft = .TopRight Then
Return String.Format("{0}", .TopLeft)
End If
Return String.Format("{0},{1},{2},{3}", .TopLeft, .TopRight, .BottomRight, .BottomLeft)
End With
End If
Return Nothing
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
If TypeOf value Is String And targetType Is GetType(CornerRadius) Then
Dim parts() = Split(value, ",")
If parts.Length = 1 Then
Return New CornerRadius(Val(parts(0)))
ElseIf parts.Length = 4 Then
Return New CornerRadius(Val(parts(0)), Val(parts(1)), Val(parts(2)), Val(parts(3)))
End If
End If
Return Nothing
End Function
End Class
End Namespace