在我询问如何加粗GUI之前。 答案是创建一种样式:
GUIStyle myToggleStyle = new GUIStyle(GUI.skin.toggle);
然后将其设置为粗体:
myToggleStyle.fontStyle = FontStyle.Bold;
最后将其与Toggle一起使用:
GUI.Toggle(new Rect(5, 10, 200, 60), false, "Select All", myToggleStyle);
但是现在我正在使用另一个具有相同文本“全选”的Toggle,但这一次是EditorGILayout.Toggle,我不需要或不想使用GUI.Toggle,因为GUI.Toggle需要Rect。
问题是使用EditorGUILayout.Toggle myToggleStyle不起作用。它什么也不做,不会使文本/字体变粗体。
这在OnGUI内部:
EditorGUI.BeginChangeCheck();
selectAll[i] = EditorGUILayout.Toggle("Select All", selectAll[i]);
if (EditorGUI.EndChangeCheck())
SelectDeselectAll(i);
我尝试过:
EditorGUI.BeginChangeCheck();
GUIStyle myToggleStyle = new GUIStyle(GUI.skin.toggle);
myToggleStyle.fontStyle = FontStyle.Bold;
selectAll[i] = EditorGUILayout.Toggle("Select All", selectAll[i], myToggleStyle);
if (EditorGUI.EndChangeCheck())
SelectDeselectAll(i);
但这并不是使“全选”加粗。
答案 0 :(得分:1)
有效的解决方案:
EditorGUI.BeginChangeCheck();
var origFontStyle = EditorStyles.label.fontStyle;
EditorStyles.label.fontStyle = FontStyle.Bold;
selectAll[i] = EditorGUILayout.Toggle("Select All", selectAll[i]);
EditorStyles.label.fontStyle = origFontStyle;
if (EditorGUI.EndChangeCheck())
SelectDeselectAll(i);