#284 – Делаем Image прозрачным используя свойство Opacity

Так как контрол Image наследуется (напрямую) от UIElement, то он имеет свойство Opacity. Свойство Opacity позволяет контенту за изображением быть видимым через изображение. Значение свойства лежит в диапазоне от 0.0 до 1.0, 0.0 означает, что изображение полностью прозрачно (не отображается вообще) и 1.0 означает, что изображение полностью не прозрачно (ничего сквозь него невидно).

В примере ниже мы привязываем значение свойства Slider'а к свойству Opacity у контрола Image, так что мы можем легко менять прозрачность. Мы так же заполнили фон окна градиентной заливкой.

Когда Opacity равно 1.0, то изображение полностью непрозрачно и градиент не виден сквозь изображение.

Читать полностью »

22.04.2011

#277 – У изображений есть встроенная информация по DpiX и DpiY

Зачастую когда вы задаете Stretch=None для контрола Image, вы можете получить сообщение, что изображение не может быть отображено в ожидаемом размере в пикселях для высоты/ширины. Это случается когда разрешение изображения (DPI) не совпадает с системным DPI.

В файле изображений (таких как .png или .jpg) содержится информация в пикселях о ширине/высоте. Файл изображения может также содержать информацию о DpiX и DpiY (разрешение). Эта информация о разрешении присутствует не во всех файлах.

Читать полностью »

15.04.2011

#251 Встраивание UIElement внутри FlowDocument

Вы можете встроить любые UIElement в FlowDocument используя тип блока BlockUIContainer. Это позволяет вставлять контролы в середину документа. Зная, что Panel наследуются от UIElement вы можете вставить не только одиночный элемент, но и контейнер который может содержать другие контролы.

Далее пример:

Читать полностью »

20.03.2011

Linq to XML

Ранее мы рассмотрели два варианта применения Linq, один это получение коллекции чисел, а второй получение коллекции объектов класса определенного пользователем (Customers).

Теперь мы прочитаем XML файл и выберем данные из него с помощью Linq.

Читать полностью »

15.02.2011

№193 – Вы можете иметь одновременно открым проект в Blend и Visual Studio

Visual Studio лучше для некоторых вещей, чем Blend (например, написание кода). Blend лучше, чем Visual Studio для других вещей (например, изменение разметки).

Это значит, что вы можете переключаться туда и обратно между инструментами. Вместо того чтобы закрывать и открывать проект каждый раз, вы можете держать проект открытым одновременно в обоих инструментах.

Читать полностью »

21.01.2011

#186 – Когда надо использовать Blend (а не Visual Studio)

Вы можете разрабатывать приложение, используя только Visual Studio. Так же вы можете разрабатывать приложение без Visual Studio, используя любой редактор на ваш выбор и командную строку для создания приложения.

Но в идеале вы хотите использовать оба инструмента Visual Studio и Blend. Есть много веще которые вы можете делать и там и там, но есть базовая модель:

Читать полностью »

14.01.2011

#180 – Как работают Layout

Размещение в WPF зависит от контейнера (такие как Grid, StackPanel) в котором размещаются дочерние элементы (такие как Button, Label). Контейнер задает конечный размер и позицию для каждого дочернего элемента, что определяет, как дочерние элементы отобразятся.

Процесс размещения запускается, когда контейнер впервые отобразится или когда свойство дочернего контрола изменится (если свойство может влиять на размещение).

Читать полностью »

08.01.2011

#179 Контролы панели, которые могут содержать потомков типа UIElement

Элементы, которые действуют как контейнеры называются панелями, они наследуются от Panel. Панель может содержать один или несколько дочерних элементов, каждый является наследником UIElement.

Несколько примеров классов наследников Panel:

Читать полностью »

07.01.2011

#171 – Базовые классы – Freezable и Animatable

Мы можем добавить два других важных класса в нашу иерархию классов - Freezable и Animatable.

  • Freezable - Реализует паттерн "freezable" в котором объект может предоставлять "замороженную" копию самого себя в режиме только для чтения.
  • Animatable – Наследуется от Freezable и добавляет возможность анимации свойств

Оригинал: #171 – Other Base Classes – Freezable and Animatable

30.12.2010