Так как с Blend пока глухо, делаю стандартные вещи, которые никому не интересны, то расскажу, как я делаю Журнал Логов для администратора.
Конечно можно было бы сделать стандартный грид и и потом таблицей это выводить, но хочется чего то необычного и в то же время удобного. Поэтому для себя я выбрал принцип timeline.
Для начала вот вам ссылочки:
Silverlight & WPF Timeline Control — Отличный контрол, который я стал использовать (не люблю велосипеды)
Source Code — исходники сборки и примеры работы с ней или же скачайте отдельно релизы библиотек Library for WPF и Library for Silverlight
Суть простая: Кидаем DLL в референсы, добавляем себе на панель ToolBox новые элементы и накидываем на форму. Вот такой код у меня получился:
Ну и конечно же картинка
Всё это динамично и работает. Ну почти всё — кнопка развернуть в WPF не работает, т.к. в библиотеки прописано только для SIlverlight.
Вот с добавлением данных я что-то никак не пойму, может кто из вас поймёт. В примерах вставка данных происходит либо с сервера (например: localhost:123/data.xml), либо из ресурсов (что почему то не пашет).
Так же можно делать выгрузку из SQL базы. Сейчас очень поздно завтра обновлю и покажу, как подключить БД, но в двух словах — конвертить в XMLDocument.
Конечно можно было бы сделать стандартный грид и и потом таблицей это выводить, но хочется чего то необычного и в то же время удобного. Поэтому для себя я выбрал принцип timeline.
Для начала вот вам ссылочки:
Silverlight & WPF Timeline Control — Отличный контрол, который я стал использовать (не люблю велосипеды)
Source Code — исходники сборки и примеры работы с ней или же скачайте отдельно релизы библиотек Library for WPF и Library for Silverlight
Суть простая: Кидаем DLL в референсы, добавляем себе на панель ToolBox новые элементы и накидываем на форму. Вот такой код у меня получился:
- <Grid
- x:Name="LayoutRoot"
- Background="White">
- <TabControl>
- <TabItem
- x:Name="tiTimeLine"
- Header="TimeLine">
- <Grid
- x:Name="grdTimeLine">
- <Grid.RowDefinitions>
- <RowDefinition
- Height="*" />
- <RowDefinition
- Height="30" />
- </Grid.RowDefinitions>
-
- <timeline:TimelineTray
- x:Name="timeline"
- Grid.Row="0"
- CalendarType="gregorian"
- HorizontalAlignment="Stretch"
- MinDateTime="01/01/2010"
- MaxDateTime="01/01/2020"
- InitialDateTime="02/11/2010">
-
- <Grid.RowDefinitions>
- <RowDefinition
- Height="20" />
- <RowDefinition
- Height="*" />
- <RowDefinition
- Height="25" />
- <RowDefinition
- Height="20" />
- </Grid.RowDefinitions>
-
- <timeline:TimelineToolbox
- Grid.Row="0"
- />
-
- <timeline:TimelineBand
- Grid.Row="1"
- IsMainBand="True"
- ItemSourceType="Days"
- HorizontalAlignment="Stretch"
- TimelineWindowSize="20"
- MaxEventHeight="130" />
-
- <timeline:TimelineBand
- Grid.Row="2"
- HorizontalAlignment="Stretch"
- ItemSourceType="months"
- TimelineWindowSize="16"
- MaxEventHeight="4" />
-
- <timeline:TimelineBand
- Grid.Row="3"
- HorizontalAlignment="Stretch"
- ItemSourceType="years"
- TimelineWindowSize="16"
- MaxEventHeight="4" />
-
- </timeline:TimelineTray>
- </Grid>
- </TabItem>
- <TabItem
- x:Name="tiOther"
- Header="Another">
- <Grid />
- </TabItem>
- </TabControl>
- </Grid>
* This source code was highlighted with Source Code Highlighter.
Ну и конечно же картинка
Всё это динамично и работает. Ну почти всё — кнопка развернуть в WPF не работает, т.к. в библиотеки прописано только для SIlverlight.
Вот с добавлением данных я что-то никак не пойму, может кто из вас поймёт. В примерах вставка данных происходит либо с сервера (например: localhost:123/data.xml), либо из ресурсов (что почему то не пашет).
Так же можно делать выгрузку из SQL базы. Сейчас очень поздно завтра обновлю и покажу, как подключить БД, но в двух словах — конвертить в XMLDocument.