books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

</Page>

Первое пространство имен XML,

http://schemas.microsoft.com/winfx/2006/xaml/presentation
, отображает множество связанных c WPF пространств имен .NET для использования текущим файлом
*.xaml
(
System.Windows
,
System.Windows.Controls
,
System.Windows.Data
,
System.Windows.Ink
,
System.Windows.Media
,
System.Windows.Navigation
и т.д.).

Это отображение "один ко многим" в действительности жестко закодировано внутри сборок WPF (

WindowsBase.dll
,
PresentationCore.dll
и
PresentationFramework.dll
) с применением атрибута
[XmlnsDefinition]
уровня сборки. Например, если открыть браузер объектов Visual Studio и выбрать сборку
PresentationCore.dll
, то можно увидеть списки, подобные показанному ниже, в котором импортируется пространство имен
System.Windows
:

[assembly: XmlnsDefinition(

    "http://schemas.microsoft.com/winfx/2006/xaml/presentation",

    "System.Windows")]

Второе пространство имен XML,

http://schemas.microsoft.com/winfx/2006/xaml
, используется для добавления специфичных для XAML "ключевых слов" (термин выбран за неимением лучшего), а также пространства имен
System.Windows.Markup
:

[assembly: XmlnsDefinition(

    "http://schemas.microsoft.com/winfx/2006/xaml",

    "System.Windows.Markup")]

Одно из правил любого корректно сформированного документа XML (не забывайте, что грамматика XAML основана на XML) состоит в том, что открывающий корневой элемент назначает одно пространство имен XML в качестве первичного пространства имен, которое обычно представляет собой пространство имен, содержащее самые часто применяемые элементы. Если корневой элемент требует включения дополнительных вторичных пространств имен (как видно здесь), то они должны быть определены с использованием уникального префикса (чтобы устранить возможные конфликты имен). По соглашению для префикса применяется просто

х
, однако он может быть любым уникальным маркером, таким как
XamlSpecificStuff
:

<Page

  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

  xmlns:<b>XamlSpecificStuff</b>=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&gt;

  &lt;Grid&gt;

    &lt;!-- Кнопка со специальным содержимым --&gt;

    &lt;Button <b>XamlSpecificStuff</b>:Name=&quot;button1&quot; Height=&quot;100&quot; Width=&quot;100&quot;&gt;

      &lt;Ellipse Fill=&quot;Green&quot; Height=&quot;50&quot; Width=&quot;50&quot;/&gt;

    &lt;/Button&gt;

  &lt;/Grid&gt;

&lt;/Page&gt;

Очевидный недостаток определения длинных префиксов для пространств имен XML связан с тем, что

XamlSpecificStuff
придется набирать всякий раз, когда в файле XAML нужно сослаться на один из элементов, определенных в этом пространстве имен XML. Из-за того, что префикс
XamlSpecificStuff
намного длиннее, давайте ограничимся
х
.

Помимо ключевых слов

x:Name
,
х:Class
и
x:Code
пространство имен
http://schemas.microsoft.com/winfх/2006/xaml
также предоставляет доступ к дополнительным ключевым словам XAML, наиболее распространенные из которых кратко описаны в табл. 24.9.

Язык программирования C#9 и платформа .NET5 - _186.png

В дополнение к двум указанным объявлениям пространств имен XML можно (а иногда и нужно) определить дополнительные префиксы дескрипторов в открывающем элементе документа XAML. Обычно так поступают, когда необходимо описать в XAML класс .NET Core, определенный во внешней сборке.

Например, предположим, что было построено несколько специальных элементов управления WPF, которые упакованы в библиотеку по имени

MyControls.dll
. Если теперь требуется создать новый объект Window, в котором применяются созданные элементы, то можно установить специальное пространство имен XML, отображаемое на библиотеку
MyControls.dll
, с использованием маркеров
clr-namespace
и
assembly
. Ниже приведен пример разметки, создающей префикс дескриптора по имени
myCtrls
, который может применяться для доступа к элементам управления в этой библиотеке:

&lt;Window x:Class=&quot;WpfApplication1.MainWindow&quot;

  xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;

  xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;

<b>  xmlns:myCtrls=&quot;clr-namespace:MyControls;assembly=MyControls&quot;</b>

  Title=&quot;MainWindow&quot; Height=&quot;350&quot; Width=&quot;525&quot;&gt;

  &lt;Grid&gt;

<b>    &lt;myCtrls:MyCustomControl /&gt;</b>

  &lt;/Grid&gt;

&lt;/Window&gt;

Маркеру

clr-namespace
назначается название пространства имен .NET Core в сборке, в то время как маркер
assembly
устанавливается в дружественное имя внешней сборки
*.dll
. Такой синтаксис можно использовать для любой внешней библиотеки .NET Core, которой желательно манипулировать внутри разметки. В настоящее время в этом нет необходимости, но в последующих главах понадобится определять специальные объявления пространств имен XML для описания типов в разметке.

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*