【发布时间】:2020-01-03 01:58:59
【问题描述】:
我在 MonoDevelop 中有一个 C# 项目。 长话短说,如果我在 Stetic GUI 中使用带标签的按钮,我发现我无法应用样式/pango/标记/图像。
我阅读的文档和我看到的一些代码说要制作标签或图像并将其打包到按钮中。
我为一个标签做了这个,它成功地设置了它的样式。
对象构建方法示例:
private void Build()
{
box = new HBox(false, 0);
box.SetSizeRequest(40, 40);
box.BorderWidth = 2;
button = new Button();
button.Clicked += cyclepoint;
lblpoints = new Label();
lblpoints.Text = "200";
lblpoints.ModifyFg(Gtk.StateType.Normal, new Gdk.Color(237, 52, 112));
button.Add(lblpoints);
button.ShowAll();
box.Add(this.button);
box.ShowAll();
this.Add(box);
}
所以没关系。现在我正在尝试附加信号,以便每当单击按钮时,它都会更改特别单击的按钮的标签文本(因为会有多个表单。
我的信号代码:
private void cyclepoint(object sender, EventArgs args)
{
Console.WriteLine("Button Pressed!");
Console.WriteLine((Label)(((Button)sender).Child).Text);
}
构建 GUI 并单击按钮时的实际输出
Button Pressed!
GtkLabel
然而,当我尝试在下面进行更改时,MonoDevelop IDe 不会编译错误:
错误 CS1061:“Widget”不包含“Text”的定义,并且找不到接受“Widget”类型的第一个参数的可访问扩展方法“Text”(您是否缺少 using 指令或程序集参考?)(CS1061)(shump)
所以我似乎无法访问 Gtk.Label 的 Text 属性来更改它的显示文本。这样做的正确方法是什么?
【问题讨论】:
-
所以在我看来。我不相信我可以访问对象的“子”元素。然而
标签: c# label monodevelop gtk#