| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Разбираемся с полосой прокруток в .NET
ВступлениеПрим. переводчика: ------------------------------------------------------------- Некоторые термины, используемые в статье:
------------------------------------------------------------- Как работает ScrollBar?Существуют три вещи в полосе прокрутки (scrollbar), которые вы обычно настраиваете при его использовании:
Все это достаточно просто сделать в .NET, используя следующие свойства:
Установка этих двух свойств применительно к scrollbar важна для того, чтобы размеры "бегунка" отражали пропорциональность видимой части - "страницы", и соответствующего размера (ширины или высоты) самого документа. Следующая формула иллюстрирует взаимосвязь между отношением LargeChange Thumb Length
----------- = ------------
Maximum Track LengthРазмер "страницы" Длинна "бегунка"
------------------- = -----------------------
Размер документа Длинна "полосы"(track)
В итоге, когда пользователь щелкнет на полосе, значение scrollbar'ского Sub-Page ScrollingВ реализации от .NET предполагается, что вам всегда будет нужно производить "прокрутку" постранично ( LargeChange=1;
// 1 ряд
Maximum=numRows; // общее количество рядов
так как сейчас я не могу определить "подряд" (в смысле разделить ряд на более мелкие составляющие) для SmallChange=1;
// 1 пиксел изменения
LargeChange=rowHeight;
// высота 1 ряда
Maximum=numRows * rowHeight
// общая высота всех рядов
Но вот незадача. Теперь мой "бегунок" больше не пропорционален видимой части документа ("странице")! Теперь "бегунок" отражает соотношение одного ряда ко всему документу, вместо "страницы" ко всему документу. Так как от этого страдает в какой-то мере и функциональность приложения, то с таким "искажающим" визуальным аспектом мериться нельзя. РешениеВыходом из данной ситуации является разделение protected override
void WndProc(ref Message m)
{
if (m.Msg == 8469)
{
switch((uint)m.WParam)
{
case 2:
// "страница" прокручивается вверх
if (
this.Value -
this.ValLargeChange >
0
)
{
this.Value-=
this.ValLargeChange;
}
else
{
this.Value=
0;
}
break;
case 3:
// "страница" прокручивается вниз
if (
this.Value+
this.LargeChange+
this.ValLargeChange <
this.Maximum)
{
this.Value+=
this.ValLargeChange;
}
else
{
this.Value=
this.Maximum -
this.LargeChange;
}
break;
default:
base.WndProc (
ref m);
break;
}
}
else
{
base.WndProc (
ref m);
}
}
Это контролирует поведение scrollbar по умолчанию и изменяет значение ЗаключениеВы можете посмотреть эту разницу в "действии" в представленном демо-приложении. Заметьте, что данный код не идеален, но его основная цель - изучение проблемы, с которой он справляется на "отлично". Автор Marc Clifton, перевод - kate aka cronOS Рубрика: Windows Forms
HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|