Добрый день всем пользователям этого раздела форума.
Готовы следующие две обучающие статьи по WPF.
Тематика:
№ 004 - XAML и обычный код VB/С#
№ 005 - Анимация текста / Контейнер StackPanel
Читать тут: list.php?c=articles11
Если вы не читали первые три статьи - вы можете ознакомиться с ними по этому адресу:
forums.php?m=posts&q=4248
С радостью отвечу на все вопросы и комментарии.
Espoir, Снова спасибо!
А не мог ты мне отдельно расказать (желательно в ПМ(Личные сообщения)) как присвоить элементу Image какое либо изображение?
Хочу через <Storyboard> сделть переход от одной картинки у другой. Это возможно вообще?
Почему, когда я добавляю в ресурсы изображения, то он говорит, что не знает пространства System.Drawing.Image? Неужели System болше не используется?
QiSoft, этот вопрос я собираюсь осветить в 6-й статье. Постараюсь выложить информацию сегодня вечером/завтра утром.
Вопрос использования изображений, ресурсов и прочее - сможете прочитать немного позже (вопрос слишком обширный, чтобы освещать его в рамках форума)
Espoir, дочитал твои материалы, мне понравилось.
А какие дальнейшие планы? Хотелось бы узнать, собираешься ли позже переходить к WCF, WWF и т.п.?
Про WPF один лишь совет: побольше наглядности. Например, я очень хорошо помню впечатление, которое произвело видео Даниеля Лэхенбауера по WPF; особенно та часть, где он демонстрирует практическое программирование. Очень эффектно и, главное, очевидны действительно революционных трехмерные возможности Avalon.
Освещение вопросов WCF и WWF планирую не ранее Сентябрьского CTP. Надеюсь к тому моменту появится RC -версия .NET 3.0 - тогда можно будет начинать. На настоящий момент эти технологии производят впечатление крайне сырых - даже по сравнению с WPF.
То, что могу точно обещать в ближайшее время помимо WPF - это освещение продуктов серии Expression - Interactive Designer и Graphic Designer.
Кстати, Raiker, может посодействуете в нормальном размещении материалов на сайте?
Espoir, обязательно посодействую, как только сам получу ответ от Николая.
Дело в том, что мы планируем отвести отдельное место разработчикам на сайте (с присвоением должного статуса и оплаты), пока это вызревает в уме Николая...
Из 4ой статьи
для C# внешний вид несколько отличается
Мягко сказано По крайне мере в моём июньском CTP там вообще не возможности управлять свойствами или handler'ми объектов через IDE. Т.е. ручками всё надо прописывать:
public Window1()
{
InitializeComponent();
btnMinimize.Click += new RoutedEventHandler(btnMinimize_Click);
}
private void btnMinimize_Click(Object sender, System.Windows.RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
Ну или в самом InitializeComponent, хотя насколько я понимаю он будет переписываться при каждом изменении в xaml коде.
Действительно такая проблема есть... Кстати, есть более простой метод - если задать ссылку на процедуру btnMinimize_Click в XAML коде вот так <Некий элемент Click="btnMinimize_Click" /> то в коде C# достаточно вручную написать блок
private void btnMinimize_Click(Object sender, RoutedEventArgs e)
{
}
и код будет работать. При этом отпадает необходимость определять событие руками
Espoir,
Самой собой можно и в xaml, причём я так понимаю это и будет реализовано визуальным редактором форм, эпоха Form1.designer.[cs || vb] прошла
Просто по привычке руки тянуться писать на cs а не на xaml...
В 5ой статье очепятка не большая - по непонятной причине там во всех тригерах нет нужного блока <EventTrigger.Actions></EventTrigger.Actions>
Т.е. должно быть так:
<TextBlock.Triggers>
<EventTrigger RoutedEvent="TextBlock.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
</Storyboard>
</BeginStoryboard>
</<EventTrigger.Actions>
</EventTrigger>
</TextBlock.Triggers>