Convert it to a DateTime and then back to a string:
DateTime dt = DateTime.ParseExact("29-04-2012", "dd-MM-yyyy", CultureInfo.InvariantCulture);
string str = dt.ToString("dd.MMMM.yyyy");
Try to always keep dates in DateTime format rather than string - convert from string as early as possible, and convert back to string as late as possible. Most systems will work with a DateTime without getting confused by the date format the user entered it in!