|
Программирование >> Windows foundation
Несомненно, на этом примере вы видите преимущества отделения внешнего вида элементов управления от его поведения. Возможно, у вас уже появилось множество идей относительно способов отображения ваших элементов в списке, которые больше отвечают требованиям, предъявляемым к вашему приложению. Может быть, вы просто хотите отобразить столько элементов, сколько уместится в окне, позиционируя их горизонтально, а затем продолжая на следующей строке вертикально. И здесь на помощь приходит WrapPanel. И, конечно, вы можете поместить WrapPanel внутрь шаблона ListBox, как показано в listBoxStyle3. На рис. 34.31 продемонстрирован результат применения WrapPanel. <Style x:Key= listBoxStyle3 TargetType= {x:Type ListBox} > <Setter Property= Template > <Setter.Value> <ControlTemplate TargetType= {x:Type ListBox} > <ScrollViewer VerticalScrollBarVisibility= Auto HorizontalScrollBarVisibility= Disabled > <WrapPanel IsItemsHost= True /> </ScrollViewer> </ControlTemplate> </Setter.Value> </Setter> <Setter Property= ItemTemplate > <Setter.Value> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width= 140 /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height= 60 /> <RowDefinition Height= 30 /> </Grid.RowDefinitions> <Image Grid.Row= 0 Width= 48 Margin= 2,2,2,1 Source= {Binding ImagePath} /> <TextBlock Grid.Row= 1 FontSize= 14 HorizontalAlignment= Center Margin= 5 Text= {Binding Name} /> </Grid> </DataTemplate> </Setter.Value> </Setter> </Style> В следующей главе вы узнаете больше о DateTemplate с функциональностью привязки данных. Рис. 34.30. Внешний вид ListBox, стилизованный с помощью listBoxStyle2 Рис. 34.31. Результат применения панели WrapPanel Резюме В этой главе был проведен небольшой экскурс по невероятно мощным средствам WPF. WPF позволяет легко разделить работу между разработчиками и дизайнерами. Как Microsoft Expression Blend, так и Visual Studio позволяют работать с кодом XAML. По сравнению со старыми приложениями Windows Forms код XAML обеспечивает лучшее отделение пользовательского интерфейса от стоящей за ним функциональности. Все интерфейсные средства могут быть созданы в XAML, а функциональность - в отделенном коде. Вы видели много элементов управления и контейнеров, основанных на векторной графике. Благодаря векторной графике, элементы WPF могут масштабироваться, деформироваться и вращаться. За счет гибкости элементов содержимого механизм обработки событий основан на пузырьковом и туннельном распространении событий. В следующей главе мы продолжим рассмотрением таких средств WPF, как анимации, 3D, привязка данных и ряда других.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |