DragDrop, настройка SelectionData, формат - PullRequest
0 голосов
/ 10 октября 2009

Я немного играю с перетаскиванием под gtk #. При звонке

protected virtual void OnDragDataGet (object o, Gtk.DragDataGetArgs args)
{
    byte[] data = GetSomeData();
    args.SelectionData.Set(args.Context.Targets[0], 0, data);
}

возникает ошибка:

Gtk-CRITICAL **: _gtk_selection_request: assertion `(data.format >= 8) && (data.format % 8 == 0)' failed

однако установка формата на 8 работает нормально:

protected virtual void OnDragDataGet (object o, Gtk.DragDataGetArgs args)
{
    byte[] data = GetSomeData();
    args.SelectionData.Set(args.Context.Targets[0], 8, data);
}

Я нашел несколько примеров перетаскивания, все используют 8 в качестве формата для отправки данных. (Использование 0 было фактически опечаткой.) Однако я не нашел, что этот формат делает, или почему 8 работает, тогда как 0 не делает.

Может кто-нибудь объяснить, что делает "fomat"?

1 Ответ

0 голосов
/ 10 октября 2009

С

* ** 1003 тысяча два *http://www.go -mono.com / документы / index.aspx ссылаются = М% 3aGtk.SelectionData.Set% 28Gdk.Atom% 2cSystem.Int32% 2cSystem.Byte []% 29 :

формат (количество бит в единице) - установите это значение на 8 и закодируйте ваши данные как UTF-8

...