среда, 10 сентября 2008 г.

Ленточки

Дорогой блог!

Сегодня я расскажу тебе о лентах и контекстных вкладках. Лента -- это такая новая панель инструментов, которую придумал Майкрософт и стал использовать в Office 2007. В ней есть категории, вкладки, на вкладках есть группы, в группах есть кнопки и другие штуки и группы кнопок, в которых тоже есть кнопки и другие штуки. Вот, и все это позволяет пользователю легко, и красиво, и свободно делать все, что ему надо. А еще в ленте можно сделать одну большую кнопку с главным меню программы и вставить много-много всяких кнопочек и других шиук в панель быстрого запуска. Лента -- это очень хороший контрол, в который можно поместить все, что надо, только она занимает немножко много места, зато она может быть одна на всю программу.
Вот, а еще в ленту можно прямо во время работы программы вставлять все, что угодно: и вкладки, и группы, и кнопки и все остальное. Например, если пользователь работает со списком входящих сообщений и документов, можно показать вкладку для этого списка, а если он работает с запросами, можно показать ему вкладку для запросов. А сделать это просто :)
1. Надо сначала создать категорию вкладок и наполнить ее вкладками или создать вкладку, но мне больше нравится делать с категориями:
RibbonPageCategory category
= new RibbonPageCategory(categoryName, categoryColor, false);
RibbonPage page = new RibbonPage(pageName);

FillRibbonPage(page);

category.Pages.Add(page);

2. Надо наполнить вкладки группами, кнопками и всем остальным:
public void FillRibbonPage(RibbonPage page)
{
RibbonPageGroup groupBrowse = new RibbonPageGroup("Просмотр");

BarButtonItem btnBrowse = new BarButtonItem();
btnBrowse.Caption = "Просмотр";
btnBrowse.LargeGlyph = Resources.box_view;
btnBrowse.LargeWidth = 85;
btnBrowse.Name = "btnBrowse";
btnBrowse.RibbonStyle = RibbonItemStyles.Large;
btnBrowse.ItemClick += new ItemClickEventHandler(btnBrowse_ItemClick);

groupBrowse.ItemLinks.Add(btnBrowse);

page.Groups.Add(groupBrowse);
}

3. А потом надо управлять видимостью категории или вкладки:
private void OnSmartPartActivated(object sender, WorkspaceEventArgs e)
{
category.Visible = (e.SmartPart is MySmartPart);
}

private void OnSmartPartClosing(object sender, WorkspaceCancelEventArgs e)
{
if (e.SmartPart is MySmartPart)
category.Visible = false;
}

Дорогоуважаемые программисты! Используйте ленты и прочие инструменты на здоровье! У меня ленты от DevExpress.

До скорых встреч!

2 комментария:

Unknown комментирует...

угу:) седня материли как раз эти твои ленты:)

Андрей комментирует...

инна :-Р матерятся там, где соображалки не хватает