#496 – Использование StackPanel для создания группы кнопок одинакового размера

Зачастую вы хотите расположить группу кнопок в GUI по вертикали или горизонтали. Обычно используя StackPanel для этого.

Давайте предположим, что вы хотите серию кнопок расположенных вертикально с правой стороны окна.

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

16.02.2012

#492 – Разметка может изменяться во время выполнения

Преимущество flow-based разметки против coordinate-based в том, что элементы в пользовательском интерфейсе подстраивают размер под содержание. Дизайнер GUI не имеет явного задания размера и расположения для каждого дочернего элемента.

Разметка контейнеров в WPF не только позиционирует дочерние элементы в режиме дизайна, но переизмеряет и перестраивает размещение дочерних элементов, когда некоторые свойства дочерних элементов меняются. Например, если свойство Content у контрола Label изменится, то родительской контейнер обновит представление на новый текст.

В примере ниже, когда Label содержащий название фильма меняется кнопки сдвигаются вправо.

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

10.02.2012

Caliburn Micro Часть 4: Агрегатор событий

Для тех из вас, кто только присоединился к серии уроков, мы узнали о том, как использовать Caliburn Micro для создания приложений WPF с архитектурой MVVM. Caliburn Micro является фрейморком используемым для построения .NET приложений (WPF, Silverlight и Windows Phone 7) используя некоторые популярные UI паттерны, включая MVVM, MVP и MVC. Он предоставляет много полезных способов уменьшить объем работы, которые вам нужно сделать для выполнения общих задач, таких как создание привязок данных и перехват событий. Различные особенности Caliburn Micro позволяют легко иметь чистую связь между объектами модели и пользовательского интерфейса. Это означает, что ваше приложение легко тестируется и поддерживается. Вот ссылки на предыдущие статьи в блоге:

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

01.02.2012

#479 – Использование преобразования разметки над дочерними элементами в Canvas

Вы можете использовать LayoutTransform на дочерних элементах Canvas для преобразования их графического представления. Особенно вы можете использовать RotateTransform, ScaleTransform или SkewTransform.

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

24.01.2012

Caliburn Micro Часть 3: Дополнительно о событиях и их параметрах

До текущего момента в серии примеров по Caliburn Micro мы рассмотрели как начать использовать Caliburn Micro в WPF приложении и как связать представление? с моделью вместе используя привязку и события. В сегодняшнем примере мы рассмотрим более продвинутые возможности обработки событий и указание параметров события. Для эксперимента с этими возможностями мы расширим приложение, сделанное в предыдущих статьях.

Возможно, вы помните по предыдущим статьям, что мы привязывались к событиям с помощью соглашений именования Caliburn Micro. Все что нам надо было это задать имя кнопки в представлении таким же, как и имя метода в модели представления. Когда событие Click происходило для кнопки, то это автоматически связывало его с вызовом соответствующего метода. Иногда вам нужно однозначно привязаться к событию для передачи параметров или указать какое точно событие вы хотите использовать. Для этого Caliburn Micro предоставляет расширенный и короткий синтаксис. Преимущество расширенного синтаксиса в совместимости с Microsoft Expression Blend. Короткий синтаксис лучше, если вам не нужно использовать дизайнер и вы хотите краткости и простоты. Давайте начнем с изучения как использовать расширенный синтаксис.

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

24.01.2012

Caliburn Micro Часть 2: Привязка данных и события

В моей предыдущей статье я показал вам как начать использовать Caliburn Micro Framework в приложениях WPF. Caliburn Micro помогает реализовать приложения используя MVVM паттерн дизайна, чтобы получить четкое разделение между представлением и моделью данных. В этой статье мы рассмотрим, как Caliburn Micro помогает нам с привязкой данных и событиями. Мы построим в итоге приложение, проиллюстрированное в прошлой статье и с добавлением некоторого простого взаимодействия с пользователем и отображением данных.

Привязка данных

Мы начнем с приложения отображающего значения цифр, которые хранятся в модели. В классе AppViewModel, созданном в предыдущей статье, добавим свойство с названием Count, как показано во фрагменте кода ниже. Значение свойства хранится в поле _count которому мы присвоим значение по умолчанию равное 50. Как вы можете помнить с прошлого раза мы сделали класс AppViewModel наследником PropertyChangedBase, который предоставлен Caliburn Micro для уведомления о изменившихся свойствах. Вместо реализации INotifyPropertyChanged в каждой модели, вы можете просто вызвать метод NotifyOfPropertyChange внутри сеттера вашего свойства.

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

16.01.2012

#472 – Распределение площади UniformGrid по умолчанию

Вы обычно устанавливаете число строк и колонок UniformGrid используя Rows и Columns свойства. Вы также можете пропустить эти свойства и UniformGrid установит число строк и колонок основываясь на количестве дочерних элементов.

UniformGrid пытается создать площадь разметки, автоматически устанавливая число строк и колонок как в списке ниже:

  • 1 элемент – 1 строка, 1 колонка
  • 2-4 элементов – 2 строки, 2 колонки
  • 5-9 элементов – 3 строки, 3 колонки
  • 10-16 элементов – 4 строки, 4 колонки
  • И так далее

Обратите внимание, что UniformGrid в этом случае всегда имеет тоже число строк и колонок.

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

13.01.2012

Caliburn Micro Часть 1: Начало

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

Шаг 1: Начало

Caliburn Micro использует .NET framework 4.0, так что вам понадобится Visual Studio 2010 для создания приложения. Начните с создания нового проекта типа "WPF Application" и добавьте ссылки на Caliburn.Micro.dll и System.Windows.Interactivity.dll которые у вас будут после скачивания Caliburn Micro. Так как Caliburn Micro позаботится о создании окна за вас, то удалите файл MainWindow.xaml и уберите атрибут StartupUri из файла App.xaml. App.xaml теперь должен выглядеть так:

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

12.01.2012

#469 – Заполнение UniformGrid справо налево

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

По умолчанию значение для FlowDirection является LeftToRight. Если вы укажите значение RightToLeft, то UniformGrid будет заполнять дочерние элементы справа налево в каждой строке (Строки все также будут заполняться сверху вниз).

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

10.01.2012

#468 – Свойство FirstColumn позволяет получить пустые ячейки в UniformGrid

UniformGrid содержит дочерние элементы в порядке, в котором они появляются в файле XAML где UniformGrid определен. Они располагаются в первой строке (слева на право) пока строка не заполнится и не начнется вторая строка.

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

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

09.01.2012