Как уменьшить кнопки telegram api?

Хочу сделать такие кнопки:

Кнопки, которые хочу

Код C#:

var chatId = message.Chat.Id;
var list = new List<KeyboardButton>() { new KeyboardButton("Пополнить баланс"), new 
KeyboardButton("\U0001F3E0Главное меню") };
var markup = new ReplyKeyboardMarkup(list);
await botClient.SendTextMessageAsync(chatId, "Hi!", replyMarkup: markup);

Получаются такие:

Кнопки, которые получаются


Ответы (2 шт):

Автор решения: A K

Что-то я не помню в API параметров, которыми можно было регулировать размер кнопок: вы указывате только количество кнопок в каждом ряду, заголовки - а остальное делает сам клиент.

Может конечно что-то поменялось за последний год, давно не смотрел, но вряд ли.

Различных клиентов много (андроид, яблоко, веб-версия, десктоп), поэтому вряд ли разработчики задумывались о том, чтобы предоставить какое-то API.

И прямо говоря, как конечный пользователь мне второй вариант нравится больше: кнопки достаточно крупные, удобные - не промахнуться пальцем на телефоне.

Если же вы хотите именно узкие кнопки - расположите их не "две в ряд", а в два ряда - я почти уверен, что в этом случае вы получите две узкие кнопки во всю длину устройства.

Что-то типа:

var ikm = new InlineKeyboardMarkup(new[]
{
    new[]
    {
        InlineKeyboardButton.WithCallbackData("Пополнить баланс", $"CreateCorrespondent={contragent}"),
    },
    new[]
    {
        InlineKeyboardButton.WithCallbackData("\U0001F3E0Главное меню", Processors.Callbacks.HideKeyboard.Command),
    },
});
→ Ссылка
Автор решения: Роман

Для конструктора объекта ReplyKeyboardMarkup существует параметр resizeKeyboard (подробнее в документации). Для решения проблемы можно просто заменить

var markup = new ReplyKeyboardMarkup(list);

на

var markup = new ReplyKeyboardMarkup(list, true);
→ Ссылка