Установка свойства Opacity кисти



Каждая кисть также наследует свойство Opacity от базового класса Brush. Устанавливая значение этого свойства от 0 до 1, можно управлять прозрачностью содержимого, которое рисует кисть, будь то сплошной цвет, градиент либо некоторого рода текстура или изображение. Поскольку для свойств Stroke и Fill фигуры используются разные кисти, можно задавать разную степень прозрачности для ее границы и поверхности.

Использование цвета, имеющего непрозрачное значение альфа-канала

Любой цвет, который имеет значение альфа-канала менее 255, является полупрозрачным. Например, можно установить полупрозрачный цвет для кисти SolidColorBrush и применять ее для рисования фона или переднего плана элемента. В некоторых ситуациях использование полупрозрачных цветов работает лучше, чем установка свойства Opacity.

Трансформации

Трансформации представляют собой один из способов изменения элемента. Каждый элемент способен применять трансформацию двумя разными способами:

- через свойство RenderTransform: применяется после того, как выполняется компоновка, и служит для трансформации финального отображаемого вывода.

- через свойство LayoutTransform : применяется перед проходом компоновки, и в результате другие элементы управления оказываются переупорядоченными с целью заполнения контейнера. Изменение свойства LayoutTransform инициирует новую операцию компоновки (если только элемент не находится внутри Canvas — в этом случае RenderTransform и LayoutTransform эквивалентны).

Классы трансформаций

имя описание Важные свойства
Translatetransform Смещает координатную систему btn= new Button(); btn.Content = "Translated"; btn.RenderTransform = new TranslateTransform(-100, 150); canv.Children.Add(btn); X, Y
RotateTransform Поворачивает координатную систему. Фигуры поворачиваются вокруг заданной точки btn.RenderTransform = new RotateTransform(-30); Angle, CenterX, CenterY
ScaleTransform Масштабирует координатную систему. Масштабируются фигуры. Если по разным осям сделать разную степень масштабирования фигуры будут сжатыми или растянутыми  btn.RenderTransform = new ScaleTransform(1.5, 4); CenterX, CenterY, ScaleX, ScaleY
SkewTransform Изменяет координатную систему. Наклоняя ее на определенное число градксов. Например, квадрат после трансформации станет параллелограммом btn.RenderTransform = new SkewTransform(0, 20): AngleX, AngleY, CenterX, CenterY
MatrixTransform Модифицирует координатную систему, используя матричное умножение с указанной матрицей. Требует определенной математической подготовки. Matrix
TransformGroup Комбинирует несколько трансформаций таким образом, что они могут применяться одновременно. Важен порядок применения трансформаций.  

Пользовательские элементы управления в WPF

Пользовательские элементы управления (user control) - это способ инкапсуляции (упаковки) частей графического интерфейса.

В качестве базового для пользовательского элемента управления берется библиотечный класс ContentControl или производный от него UserControl из пространства имен System.Windows.Controls. Создание пользовательских элементов управления на примере инкапсуляции кнопки Button включает следующие этапы:

В панели Solution Explorer (Обозреватель решений) выделите узел проекта, в контекстном меню (по нажатии правой кнопки мыши) выполните команду Add (Добавить) -> User Control (Пользовательский элемент управления). В результате откроется окно UserControl1.xaml, в котором можно создавать пользовательский элемент.

Откомпилируйте (только откомпилируйте!) проект, чтобы создать пользовательский элемент для видимости его подсказчиком кода IntelliSense в файле окна

Откройте на редактирование в режиме XAML файл Window1.xaml и измените его дескрипторный код, добавив следующие строки (предполагается, что проект называется Wpf1):

<Window x:Class="Wpf1.Window1"

xmlns:My="clr-namespace:Wpf1"

   

 >

Тем самым в дескриптор окна Window мы добавили пользовательское пространство имен Wpf1 с псевдонимом My, чтобы окно увидело пользовательский элемент.

Теперь можно создать экземпляр пользовательского элемента управления в том месте, в котором вы хотите его поместить в окно:

<My:UserControl1  x:Name="my_control" />


Дата добавления: 2018-04-05; просмотров: 377; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!