在MonoTouch.Dialog中设置按钮颜色

时间:2011-06-20 18:22:34

标签: c# ios reflection xamarin.ios monotouch.dialog

我有以下代码:

[OnTap ("Account")]
[Alignment (UITextAlignment.Center)]
[Entry ("Create ScanDo! Account")]
public string Login;

我想根据另一个字段的内容动态设置Cell背景颜色,然后单击按钮。有人能指点我的方向吗?

谢谢, 瑞克

3 个答案:

答案 0 :(得分:2)

我想出的答案:

btnLogin = new StyledStringElement("", delegate {Account();})

要定义对象,请将其添加到RootElement,然后:

btnLogin.BackgroundColor = UIColor.Green;

设置颜色!这个方法让我设置颜色,字体,大小和标题。

伟大的工作米格尔,谢谢!

答案 1 :(得分:2)

当您将按钮添加到根集合时,您可以设置颜色。就像你设置一个部分的元素一样。

Root = new RootElement("First Section") {
    new Section ("Test"){
        new StyledStringElement("Login", delegate { Account(); })
        {
            BackgroundColor = UIColor.Green
        }
    }
}

答案 2 :(得分:0)

我不喜欢拉扯我的项目,但在这种情况下,它是您的最佳选择。

查看https://github.com/RobertKozak/MonoMobile.MVVM

我的项目最初是为MonoTouch.Dialog添加数据绑定支持,但已经发展成一个比MonoTouch.Dialog更容易使用的更大的框架。

使用MonoMobile.MVVM执行您想要的代码如下所示:

public class ButtonView : View, INotifyPropertyChanged
{
  private UIColor ButtonColor = UIColor.Red;

   [Button]
   [Bind("ButtonColor", "BackgroundColor")]
   public void Test()
   {
       ButtonColor = UIColor.Green;
       PropertyChanged(this, new PropertyChangedEventArgs("ButtonColor"));
   }

   public event PropertyChangedEventHandler PropertyChanged = (s,e)=>{};
}

有更好的方法可以使用正确的ViewModel来实现这一点,但这将按照列出的方式工作(我在此处输入之前对其进行了测试。)

MonoMobile.MVVM仍然处于测试阶段但是有足够的东西可以帮助你。在我完成实现INotifyCollectionChanged并为各种Element属性添加更多绑定后,它应该在接下来的几周内处于完全释放状态。