#c# #gtk3 #gtk#
Вопрос:
У меня проблема, я хочу использовать строку заголовка в качестве заголовка в gtk#, но вот ошибка, которая была создана:
ошибка CS1061: «Окно» не содержит определения для «gtk_window_set_titlebar», и не удалось найти доступный метод расширения «gtk_window_set_titlebar», принимающий первый аргумент типа «Окно» (отсутствует директива using или ссылка на сборку?)
Это gtk#, который я использовал: GTK#
И вот мой код:
namespace gtkapp
{
class MainWindow : Window
{
private int _counter = 0;
static private int _max = 1000;
[UI] private Label _label1 = null;
[UI] private Label _label2 = null;
[UI] private Button _button1 = null;
[UI] private Button _button2 = null;
[UI] private LevelBar lb = new LevelBar(0, _max);
[UI] private HeaderBar _headerbar = null;
[UI] private Window MainWindoww = null;
public MainWindow() : this(new Builder("MainWindow.glade")) { }
private MainWindow(Builder builder) : base(builder.GetRawOwnedObject("MainWindow"))
{
builder.Autoconnect(this);
MainWindoww.gtk_window_set_titlebar(MainWindoww, _headerbar);
DeleteEvent = Window_DeleteEvent;
_button1.Clicked = Button1_Clicked;
_button2.Clicked = Button2_Clicked;
_headerbar.Title = "GTK clicker";
Decorated = false;
lb.Value = 0;
lb.MaxValue = 1000000;
}
private void Window_DeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
}
private void Button1_Clicked(object sender, EventArgs a)
{
_counter ;
// _counter = 100;
lb.Value = 10;
lb.MaxValue = 1;
if(lb.Value < _max)
{
_label1.Text = "This GTK button has been clicked " _counter " time(s).";
}
else if(lb.Value >= _max)
{
_label1.Text = "This GTK button has been clicked for the " _counter " time(s).";
}
}
private void Button2_Clicked(object sender, EventArgs a)
{
Application.Quit();
}
}
}
Что-то эквивалентное gtk_window_set_titlebar()
Комментарии:
1. Разве у вашего окна нет
Titlebar
свойства илиSetTitlebar()
метода? Попробуйthis.Titlebar = _headerbar;
илиthis.SetTitlebar(_headerbar);
2. спасибо за вашу помощь
Ответ №1:
Решение, которое я нашел в комментарии.
use this.Titlebar = (the variable of the header bar, my variable name is _headerbar); Decotated = false;
Заказ должен быть выше, иначе это не сработает