2013-02-02 63 views
1

我需要一種方式來設置Monotouch對話框的樣式RootElement。我需要更改背景和字體顏色。我如何樣式RootElement

我已經創建了一個自定義的rootElement的如下

public class ActivityRootElement : RootElement 
{ 
    public ActivityRootElement (string caption) : base (caption) 
    { 

    } 

    public ActivityRootElement(string caption, Func<RootElement, UIViewController> createOnSelected) : base (caption, createOnSelected) 
    { 
    } 

    public ActivityRootElement(string caption, int section, int element) : base (caption, section, element) 
    { 
    } 

    public ActivityRootElement(string caption, Group group) : base (caption, group) 
    { 
    } 



    public override UITableViewCell GetCell (UITableView tv) 
    { 
     tv.BackgroundColor = Settings.RootBackgroundColour; 
     return base.GetCell (tv); 
    } 

    protected override void PrepareDialogViewController(UIViewController dvc) 
    { 
     dvc.View.BackgroundColor = Settings.RootBackgroundColour; 
     base.PrepareDialogViewController(dvc); 
    } 

} 

我然後調用自定義的根元素,如下傳遞一個自定義的DialogController

section.Add (new ActivityRootElement(activity.Name, (RootElement e) => { 
       return new ActivityHistoryDialogViewController (e,true); 
      })); 

根元素風格不被應用。任何幫助將apprciated!

+0

這個問題越來越老了,但是你是否得到了這個工作? – Halvard

回答

1

如果你想讓顏色成爲你在TableViewController中看到的唯一的東西,你需要將BackgrounView設置爲null。有一個觀點適用於造型,這將隱藏你正在尋找的顏色。

試試這個:

+0

**我現在用的是xamarin主題,實際上得到了電池的工作原理**'公衆覆蓋MonoTouch.UIKit.UITableViewCell GetCell(MonoTouch.UIKit.UITableView電視) \t \t { \t \t \t tv.AllowsSelection =假。 \t \t \t var cell = base.GetCell(tv); \t \t \t cell.SelectionStyle = MonoTouch.UIKit.UITableViewCellSelectionStyle.None; \t \t \t FitpulseTheme.Apply(cell); \t \t \t return base.GetCell(tv); \t \t}' –

0

爲了得到這個工作,我不得不重寫MakeViewController方法和施放的UIViewController,它通常會返回到一個UITableViewController,然後讓我的編輯。

protected override UIViewController MakeViewController() 
{ 
    var vc = (UITableViewController) base.MakeViewController(); 

    vc.TableView.BackgroundView = null; 
    vc.View.BackgroundColor = UIColor.Red; //or whatever color you like 
    return vc; 
}