Можете ли вы просмотреть XAML как «обычный» код .net (c # \ vb.net)? - PullRequest
1 голос
/ 06 мая 2010

Бывают случаи, когда я нахожу какой-то пример XAML, который я хочу \ нужно сделать в коде (c # \ vb.net).

Я предполагаю, что в какой-то момент XAML становится кодом или, по крайней мере, IL.

Итак, мои вопросы:

  • Правильно ли я считаю, что XAML преобразуется в IL? (или, если не IL, что это становится?)

  • Если вышеприведенное верно, когда XAML становится IL (или каким бы то ни было)?

  • Есть ли способ увидеть XAML в виде "кода"

Спасибо.

Ответы [ 3 ]

3 голосов
/ 06 мая 2010

Нет, XAML не компилируется в IL, что делается во время выполнения. Лучший способ думать об этом - это способ составить приложение из компонентов.

Для большинства вещей вы можете копировать в C # то, что делаете в XAML, однако в XAML есть небольшое количество вещей, которых нет в C # и наоборот. Чарльз Петцольд в какой-то момент сказал, что якобы XAML выглядит как XML, но на самом деле это не так, это собственный язык.

Например, этот код XAML:

<Grid>
  <TextBlock Text="Something" />
</Grid>

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

var grid = new Grid();
grid.Children.Add(new TextBlock{Text = "Something"});

Я уверен, что есть решение вашей проблемы, но не как ответ на этот конкретный вопрос. Можете ли вы дать более подробную информацию о вашей проблеме, и мы поможем вам понять ее.

1 голос
/ 06 мая 2010

WPF и Silverlight по-разному относятся к XAML; ни конвертировать XAML в IL. Компилятор разметки WPF преобразует XAML в скомпилированную форму с именем BAML, которая является двоичной версией XAML. Silverlight оставляет XAML в виде простого текста (сжатого в .XAP) и анализирует его во время выполнения.

0 голосов
/ 07 мая 2010

Есть ли способ увидеть XAML в как "код"

Если вы говорите об иерархии элементов управления в xaml, то вы можете использовать myControl.Parent. Вы можете «увидеть в коде», как вкладываются элементы управления в xaml. Вы также получите / установите их свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...