|
Программирование >> Windows foundation
С помощью VisualBrush вы можете также создавать такие эффекты, как отражение. Показанная здесь кнопка содержит StackPanel, которая, в свою очередь, содержит Border и Rectangle. Элемент Border содержит StackPanel с Label и Rectangle. Но это не все. Второй Rectangle заполняется посредством VisualBrush. Кисть определяет значение размытости и трансформацию. Свойство Visual привязано к элементу Border. Трансформация выполняется установкой свойства RelativeTransform кисти VisualBrush. Эта трансформация использует относительные координаты. За счет установки ScaleY в -1 выполняется отражение по оси Y. TranslateTransform перемещает трансформацию по направлении Y, так что отражение оказывается под исходным объектом. Вы можете видеть результат на восьмой кнопке ( Visual Brush 2 ) на рис. 34.9. Привязка данных и элемент Binding, используемые здесь, подробно объясняются в следующей главе. <Button Height= 120 > <StackPanel> <Border x:Name= reflected > <Border.Background>Yellow</Border.Background> <StackPanel> <Label>Visual Brush 2</Label> <Rectangle Width= 70 Height= 15 Margin= 2 Fill= BlueViolet /> </StackPanel> </Border> <Rectangle Height= 30 > <Rectangle.Fill> <VisualBrush Opacity= 0.35 Stretch= None Visual= {Binding ElementName=reflected} > <VisualBrush.RelativeTransform> <TransformGroup> <ScaleTransform ScaleX= 1 ScaleY= -1 /> <TranslateTransform Y= 1 /> </TransformGroup> </VisualBrush.RelativeTransform> </VisualBrush> </Rectangle.Fill> </Rectangle> </StackPanel> </Button> Также вы можете использовать VisualBrush для воспроизведения видео - просто устанавливая свойство Visual в MediaElement. Свойство Source в MediaControl устанавливается в файл WMV. На рис. 34.9 девятая кнопка показывает пример отображения видео. Вы можете попробовать свое собственное, и если у вас версия Ultimate системы Windows Vista, то вы найдете то же видео на жестком диске. В противном случае просто выберите другой видеофайл. <Button Height= 120 > <Button.Background> <VisualBrush> <VisualBrush.Visual> <MediaElement x:Name= video Source= C:\Windows\ehome\ColorTint.wmv /> </VisualBrush.Visual> </VisualBrush> </Button.Background> </Button> Элементы управления В WPF вам доступны сотни различных элементов управления. Для того чтобы лучше понять их, эти элементе! управления можно разбить на следующие категории: □ простые элементе! управления; □ элементы управления с содержимым; □ озаглавленные элементы управления с содержимым; □ многоэлементные элементы управления; □ озаглавленные многоэлементные элементы управления. Простые элементы управления Простые элементы управления - это те, которые не имеют содержимого, т.е. свойства Content. На примере класса Button вы видели, что Button может содержать любую фигуру или элемент, который вам нравится. Такое невозможно для простых элементов управления. В табл. 34.4 перечислены простые элементы управления и их функциональность. Таблица 34.4. Простые элементы управления Элемент управления PasswordBox Описание ScrollBar ProgressBar Slider TextBox RichTextBox Элемент управления PasswordBox используется для ввода паролей. Этот элемент имеет специфические свойства для такого ввода; например, PasswordChar - для определения символа, который должен отображаться по мере ввода пользователем пароля, или Password - для доступа к введенному паролю. Событие PasswordChanged вызывается, как только пароль изменяется. ScrollBar (линейка прокрутки) - это элемент управления, содержащий в себе Thumb (бегунок), где пользователь может выбирать значение. Линейка прокрутки может использоваться, например, если документ не умещается на экране. Некоторые более сложные элементы управления содержат линейки прокрутки, чтобы можно было просматривать не умещающееся в них содержимое. Используя элемент управления ProgressBar, вы можете отображать ход долго выполняющейся операции. С помощью элемента управления Slider пользователь может выбирать диапазон значений, перемещая Thumb. Классы ScrollBar, ProgressBar и Slider наследуются от одного базового класса - RangeBase. Элемент управления TextBox используется для отображения простого неформатированного текста. Элемент управления RichTextBox поддерживает форматированный текст с помощью класса FlowDocument. Классы RichTextBox и TextBox наследуются от одного базового класса - TextBoxBase. Хотя простые элементы управления не имеют свойства Content, вы в полной мере можете управлять их внешним видом, определяя шаблоны. О шаблонах речь пойдет далее в главе. Элементы управления с содержимым Класс ContentProperty имеет свойство Content. Через это свойство вы можете добавлять любое содержимое к элементу управления. В предыдущем примере вы видели элемент Canvas с вставленным в него Button. Элементы управления с содержимым описаны в табл. 34.5. Таблица 34.5. Элементы управления с содержимым Элемент управления Описание Button RepeatButton ToggleButton CheckBox RadioButton Label Frame ListBoxItem StatusBarItem ScrollViewer ToolTip UserControl Window NavigationWindow Классы Button, RepeatButton, ToggleButton и GridViewColumnHeader унаследованы от одного базового класса - ButtonBase. Все кнопки реагируют на событие Click. RepeatButton возбуждает событие Click многократно - до тех пор, пока кнопка не будет отпущена. ToggleButton - базовый класс для CheckBox и RadioButton. Эти кнопки имеют состояние включено и выключено . CheckBox может быть помечен и очищен пользователем; RadioButton может быть помечен (выбран) пользователем. Очистка RadioButton должна выполняться программно. Класс Label представляет текстовую метку для элемента управления. Этот класс также имеет поддержку клавиш доступа, например, команд меню. Элемент управления Frame поддерживает навигацию. Вы можете перейти на содержимое страницы посредством метода Navigate(). Если содержимое представляет собой Web-страницу, для отображения используется элемент управления - браузер. ListBoxItem - элемент внутри ListBox (окна списка). StatusBarItem - элемент внутри StatusBar (панели состояния). ScrollViewer - элемент управления с содержимым, включающий линейки прокрутки. Вы можете поместить любое содержимое в этот элемент; при необходимости появятся линейки прокрутки. ToolTip создает всплывающее окно для отображения дополнительной информации для другого элемента управления. Использование класса UserControl в качестве базового класса обеспечивает простой путь для создания собственных специализированных элементов управления. Однако этот класс не имеет поддержки шаблонов. Класс Window позволяет вам создавать обычные и диалоговые окна. С помощью класса Window вы получаете рамку с кнопками для минимизации/максимизации/закрытия и системное меню. Для отображения диалогового окна вы можете использовать метод ShowDialog(); метод Show() открывает окно. Класс NavigationWindow унаследован от класса Window и поддерживает навигацию по содержимому. В следующем коде XAML внутри Window содержится только элемент управления Frame. Свойство Source установлено в http: www.wrox.com, так что элемент управления Frame выполняет переход на этот Web-сайт (рис. 34.10). <Window x:Class= FrameSample.Window1 xmlns= http: schemas.microsoft.com/winfx/20 06/xaml/presentation xmlns:x= http: schemas.microsoft.com/winfx/200 6/xaml Title= FrameSample Height= 400 Width= 400 > <Frame Source= http: www.wrox.com /> </Window>
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |