Imports System
Imports System.Drawing

Public Class Test
    Public Shared Sub Main()
        Console.WriteLine("-- Horizontal --")
        For Each Name As String In [Enum].GetNames(GetType(ContentAlignment))
            Dim Value As Integer = [Enum].Parse(GetType(ContentAlignment), Name)
            Dim ConvertedValue As Integer = ContentToStringAlignment(Value, False)
            Console.WriteLine("{0,-14}{1,-8}: {2} {3}", Name, "(" & Value & ")", ConvertedValue, "(" & [Enum].GetName(GetType(StringAlignment), ConvertedValue) & ")")
        Next

        Console.WriteLine(Environment.NewLine & "-- Vertical --")
        For Each Name As String In [Enum].GetNames(GetType(ContentAlignment))
            Dim Value As Integer = [Enum].Parse(GetType(ContentAlignment), Name)
            Dim ConvertedValue As Integer = ContentToStringAlignment(Value, True)
            Console.WriteLine("{0,-14}{1,-8}: {2} {3}", Name, "(" & Value & ")", ConvertedValue, "(" & [Enum].GetName(GetType(StringAlignment), ConvertedValue) & ")")
        Next
    End Sub
    
    Public Shared Function ContentToStringAlignment(ByVal Alignment As ContentAlignment, ByVal Vertical As Boolean) As StringAlignment
        If Vertical = True Then Return CType(Math.Floor(Math.Log(CType(Alignment, Integer), 16)), StringAlignment)
        Return CType(Math.Log(CType(Alignment, Integer) Mod 5, 2), StringAlignment)
    End Function
End Class