1

何らかの理由で、Stop()メソッドを使用してプログラムでボタンをアクティブにしようとすると、マウスでボタンをもう一度クリックするまで、ボタンの画像は通常の状態に関連付けられた画像に戻りません。何か案は?

    public void Stop()
    {
        buttonStartStop.SendActionForControlEvents(UIControlEvent.TouchUpInside);
    }

    partial void actionButtonStartStopPress(MonoTouch.Foundation.NSObject sender)
    {
        Console.WriteLine("StartStop Button State On Entering Handler: " + buttonStartStop.State);
        if(buttonStartStop.State == UIControlState.Highlighted)
        {
            buttonStartStop.Selected = true;
            buttonStartStop.Highlighted = true;
            buttonLiveHome.Enabled = false;
            buttonLiveBack.Enabled = false;
            buttonCalibrate.Enabled = false;
            MainLoop.StreamData(true);
        }
        else
        {
            buttonStartStop.SetTitle("Start", UIControlState.Normal);
            buttonStartStop.Selected = false;
            buttonStartStop.Highlighted = false;
            buttonLiveHome.Enabled = true;
            buttonLiveBack.Enabled = true;
            buttonCalibrate.Enabled = true;
            MainLoop.StreamData(false);
        }

        Console.WriteLine("StartStop Button State On Exiting Handler (0 means Normal): " + buttonStartStop.State);
    }
4

1 に答える 1

1

ボタンのメイン スレッドからアクションを送信する必要があります。

public void Stop()
{
    buttonStartStop.InvokeOnMainThread (new NSAction (()=> {
        buttonStartStop.SendActionForControlEvents(UIControlEvent.TouchUpInside);
    }));
}
于 2012-05-20T18:49:35.570 に答える