임이 다른 버튼을 클릭 이벤트에서 호출GTK C# 위젯 색 변경은
button1.ModifyBase(Statetype.Normal,new Gdk.Color(1,1,1));
를 사용하여 GTK 번호의 버튼 위젯의 색상을 변경하려고 작동하지 않는,하지만 위젯의 색은 업데이트되지 않습니다
이것은 왜?
임이 다른 버튼을 클릭 이벤트에서 호출GTK C# 위젯 색 변경은
button1.ModifyBase(Statetype.Normal,new Gdk.Color(1,1,1));
를 사용하여 GTK 번호의 버튼 위젯의 색상을 변경하려고 작동하지 않는,하지만 위젯의 색은 업데이트되지 않습니다
이것은 왜?
'벗겨지기 쉬운'ModifyBase 대신 ModifyBG 메서드를 사용하면 동일한 매개 변수가 전달됩니다. 당신이 모노 GTK 번호에서 GTK2.x 다루고있는 그것은 '테마'와 모노에 올 때 양쪽에 문제의 톤이 있기 때문에
button1.ModifyBG(Statetype.Normal,new Gdk.Color(1,1,1));
은 BTW, 나는 색다른 말한다. GTK3에는 CSS 방식을 사용하는 구성 모델이 있지만 Mono 배포판은 GTK2에 고정되어 있습니다. 응용 프로그램을 GTK 방식으로 테마 화/색상 화하려는 경우 테마 GTK 2.x를 검색 할 수 있습니다. 참고 : MonoDevelop/XS를 사용하는 경우 응용 프로그램 테마가 변경 될 때 IDE 외부에서 일상적으로 테스트/실행해야합니다 (이는 OS-X에서 분명히 드러나며 몇 년 또는 몇 년 후에 다시 발생하는 문제 임).
백그라운드 색상으로 올바르게 '작동하지 않는'다른 위젯을 사용하는 경우 해당 위젯이 배경이있는 이벤트 위젯에 배치 할 수 있습니다. Mono 이메일 쓰레드 내에서 2007 년 이후로이 조건을 검색 할 수 있습니다.
GTK 메인 윈도우에서 GTK 메인 윈도우에서 호출 될 때도 작동하지 않습니다. 메인 스레드의 버튼에 대해 위젯에서 여전히 작동하지 않습니다. – techno
"메인 스레드에서 메인 윈도우의 경우 작업"? GTK + 메인 루프 스레드의 창 배경색을 설정할 수 있고, 위젯의 배경색을 해당 창의 부모 색으로 설정하지 않을 수 있습니까? –
예. 코드를 Gtk.Application.Invoke()에 넣습니다. – techno