Показаны сообщения с ярлыком WPF. Показать все сообщения
Показаны сообщения с ярлыком WPF. Показать все сообщения

Обзор Visual Studio 2010 Beta 2

Сегодня утром я проснулся, зашел в приложение “Почта Windows Live” проверить свою электронную почту, и обнаружил клевое письмо!

image

Вышла наконец-то Beta 2! Это большое событие, после чего я сразу же поставил на закачку Visual Studio 2010 Beta 2 Ultimate. Среда Разработки поставляется в 3-х версиях: Professional, Premium и Ultimate.

Версия Ultimate конечно же самая полная и самая классная!

После того, как студия скачалась, я тут же поставил ее на установку.

image

Новое окно запуска(Splash Screen) в сине-фиолетовых тонах:

Безымянный

После установки, первое, что бросается в глаза – новый интерфейс, полностью переписанный на WPF:

image

Как вы можете легко заметить, все красиво раскидано по категориям, что удобно. Да и на глаз приятно.

ToDo: Надо как-нибудь нарисовать на досуге обложку для DVD для Visual Studio Beta 2

Нажимаю на кнопку, точнее на пункт меню слева – Новый проект…

image

Лично мне нравится обновленный дизайн! =)

Слева – дерево типов проектов, посередине – выбор типа из категории, справа – описание. Удобно.

Еще стоит отметить, что у нас есть .Net Framework 4 в качестве основной платформы приложения.

Для примера, я взял и создал приложение WPF на .Net 4:

image

Обновленный дизайн, карамельного цвета кнопки, подсветка.

Стоит заметить, что наблюдается падение производительности при работе со студией.

Но все это удобство того стоит.

Минимальные системные требования на мой взгляд:

2-хядерный процессор >1.5 ГГц Intel/AMD, 1 гигабайт оперативной памяти, желательно DDR3,              винчестер пошустрее - SATA/PATA.

И видеокарту не ниже GF 8 поколения.

Тулбокс:

image

Стоит отметить, что в MS VS 2010 Beta 2 теперь можно разрабатывать приложения Azure, SharePoint 2010, плагины для Office 2010.

На этом обзор новой студии я заканчиваю. Удобно, красиво, но пока еще тормозит. Стоит ли использовать .Net 4 сейчас? Ради интереса – можно. Стоит сказать, что основной платформой сейчас стала Windows 7, с предустановленным .Net Framework 3.5, поэтому есть смысл разрабатывать свое ПО именно под эту платформу, ведь не так много найдется энтузиастов, которым захотелось бы снова качать очередное обновление с сайта Майкрософт ради небольшой программы. А для коммерческих целей эта студия не подходит, т.к. еще находится под лицензией Бета и предназначена только для тестов.

Так что тестируем, смотрим, изучаем!

GetValue & Set Value

У меня есть сетка Grid. В каждой ячейке находится какой-то объект. У меня это множество объектов типа TextBlock.

image

Моя задача была при нажатии кнопки менять местами какие-либо элементы. Например, я хочу поменять местами TextBlock-и 8 и 9. Для этого в обработчике нажатия на кнопку я пишу:

tb_hor9.SetValue(Grid.ColumnProperty, 9);
tb_hor8.SetValue(Grid.ColumnProperty, 10);

Чтобы вывести на экран уже истинное положение объекта, я использую функцию GetValue():

TbxHor.Text = tb_hor8.GetValue(Grid.ColumnProperty).ToString();

Я долго искал, как получить доступ к динамически созданному элементу, даже нашел код:

public UIElement FindElement(string TagName, Panel p)
{
UIElement FoundEl = null;
foreach (UIElement el in p.Children)
{
if (((FrameworkElement)el).Tag is string)
if ((string)(((FrameworkElement)el).Tag) == TagName)
FoundEl = el;
if (FoundEl == null)
if (el is Panel)
{
UIElement result = FindElement(TagName, (Panel)el);
if (result != null)
FoundEl = result;
}
}
return FoundEl;
}


Код хороший, но не оптимизированный, темболее есть встроенная команда о которой я расскажу в своем примере:
продолжу статью «Web-службы WCF в Silverlight» С помощью сервиса мы получали текстовую строку «Hello,{0}! How are you?"» где {0} - имя, которое вы ввели в TextBox
Теперь мы не будем добавлять в Silverlight страницу, а создадим ее динамически
И так, код при нажатии на клавишу должен добавить динамический элемент «OutField», а при получении результата с сервиса записывается текст в только что добавленный элемент
Для этого делаем:
1. В обработчике клавиши добавим код:
private void CallService_Click(object sender, RoutedEventArgs e)
{
***Старый код***
TextBlock OutField = new TextBlock();
OutField.Name = "OutField";
OutField.Inlines.Add(“Полученный результат с сервера: ”);
LayoutRoot.Children.Add(OutField);
}

2. В методе proxy_TellMeSomethingCompleted заменим
OutField.Text = e.Result;
на
((TextBlock)LayoutRoot.FindName("OutField")).Inlines.Add(e.Result);


Если мы запустим наш пример и попробуем нажать на клавишу, то сначала появится Предложение “Полученный результат с сервера: ”, а потом добавится результат с сервера.


Дополнения:

Но не забудьте поставить размеры или положение для контрола OutField, так как посте создания, он занимает все пространство.

При создании контрола можно сделать проверку, чтобы при вторичном нажатии на кнопку невыводило ошибку:

if (LayoutRoot.FindName("OutField") == False)
{

}


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

Flow Documents в WPF

Сегодня речь пойдет о FlowDocuments. Очень удобная и красивая штука.

Чтобы создать FlowDocument, создаем WPF-приложение. Я для этого использую Blend, т.к. мне в нем удобнее работать.

Стоит сразу отметить, что создавая контейнер FlowDocument, вы на форму уже не сможете расположить других контейнеров.

Итак, заходим в XAML:

Первом делом пишем:

<FlowDocument>

</FlowDocument>

Контейнер создан!

Теперь я пожалуй создам таблицу:

<FlowDocument>

<Table>

</Table>

</FlowDocument>

Напоминает, старый добрый HTML ;)

Затем в теге <Table> я добавляю описание для колонок:

<Table.Columns>
    <TableColumn />
    <TableColumn />
    <TableColumn />
    <TableColumn />
</Table.Columns>

А после них добавляю сами строки. Я возьму 2 строки для примера:

<TableRow>
    <TableCell>
        <Paragraph>
        Content
        </Paragraph>
    </TableCell>
    <TableCell>
        <Paragraph FontFamily="Verdana">
        Content
        </Paragraph>
    </TableCell>
    <TableCell>
        <Paragraph FontFamily="Times New Roman">
        Content
        </Paragraph>
    </TableCell>
    <TableCell>
        <Paragraph Background="Lime">
        Content
        </Paragraph>
    </TableCell>
</TableRow>
<TableRow>
    <TableCell>
        <Paragraph>
        Text
        </Paragraph>
    </TableCell>                   
    <TableCell>
        <Paragraph>
        Text
        </Paragraph>
    </TableCell>                   
    <TableCell>
        <Paragraph>
        Text
        </Paragraph>
    </TableCell>                   
    <TableCell>
        <Paragraph>
        Text
        </Paragraph>
    </TableCell>                   
</TableRow>

Вот и все. Можете запустить свое WPF-приложение и посмотреть в действии FlowDocuments. Если вы пишете новостное ПО, или ПО, где нужен вывод форматированного текста, чтобы его можно было удобно читать – используйте FlowDocuments.

Легкое форматирование, можно менять шрифты и цвет фона и текста. В общем, не контрол – а чудо!

В следующей статье я расскажу как создавать FlowDocuments из кода.