UILabel默認是垂直居中的,高度是多少就對折居中,而UITextField卻不是這樣,它是置頂的(當然,有個默認的類似css的padding,這裡不說這個),那怎麼讓它按高度折中居中呢,VerticalAlignment屬性即可 [csharp] UITextField utxt = new UITextField (recf); utxt.VerticalAlignment = UIControlContentVerticalAlignment.Center; 這樣就居中了,具體自己看效果,水平居中是UITextAlignment屬性: [csharp] utxt.TextAlignment = UITextAlignment.Center; 配合枚舉,可以動態設置的,比如: [csharp] utxt.TextAlignment = (UITextAlignment)Enum.Parse (typeof(UITextAlignment), attr [9]); 設置文字大小和類型: [csharp] utxt.Font = UIFont.FromName (Utils.Tools.GetFontStyle (attr [3]), f (attr [4])); [csharp] public static string GetFontStyle(string f) { return f.Replace ("_", "-"); } Font屬性即可,我這裡做了動態配置,所以需要轉一道。另外說一下,ios中的字體文本特點(我說的是文本特點)和css中一樣,以-符號間隔(不是下劃線_),比如: [csharp] public enum FontStyle { AcademyEngravedLetPlain, AmericanTypewriter_CondensedLight, AmericanTypewriter_Light, AmericanTypewriter, AmericanTypewriter_Condensed, 。。。 上面說font的文本是題外話。 下面說UILabel,對它最常見的設置是自動換行,需要做如下設置: [csharp] public static UILabel CreateLbl( RectangleF frame, string title, int line=0 ,bool clearbgc=true) { UILabel l = new UILabel (frame); l.Text = title; l.AdjustsFontSizeToFitWidth = true; l.LineBreakMode = UILineBreakMode.TailTruncation; l.Lines = line; if (clearbgc) l.BackgroundColor = UIColor.Clear; else l.BackgroundColor = UIColor.Red; //測試布局用的 return l; } 最主要的是LineBreakMode屬性,lines屬性指定uilabel區域高度可劃分幾行排列文字,默認是1。這裡順便說一下,xamarin開發環境下的編程風格有點像java,除最外層的打括號是正對排列的,其它都是斜角排列,類似javascript,所以要習慣它。 對於顏色設置不多說了,想說一下UIColor.FromRGB 方法,從字面上很好理解,就是通過rgb3個數值來得到顏色,比如: [csharp] public static void SetFontColor( UILabel c,string strRGB) { string[] rgb = strRGB.Split (','); c.TextColor = UIColor.FromRGB (FormateObject.GetInt (rgb [0]), FormateObject.GetInt (rgb [1]), FormateObject.GetInt (rgb [2])); } 後續在補充吧