Поделиться через


Атрибуты времени разработки

При построении приложений WPF или Silverlight с использованием Конструктор WPF для Visual Studio иногда требуется предоставить информацию, для того чтобы представление конструктора работало правильно. Информация такого рода задается с использованием атрибутов времени разработки. Например. атрибуты времени разработки позволяют изменять размер корневого окна, устанавливая для него заданные значения для вмещения макета, оставляя изменение размера, определяемое содержимым, для времени выполнения. Атрибуты времени разработки игнорируются при компиляции и не производят никакого эффекта во время выполнения.

Атрибуты времени разработки

сред. Конструктор WPF предоставляет следующие атрибуты времени разработки.

Атрибут времени разработки

Описание

Пример использования

d:DesignHeight

Задает высоту корневого элемента во время разработки независимо от высоты во время выполнения. Автоматически добавляется при щелчке на теге root size (Тег размера корня).

<Window x:Class="DesignDataDemo.MainWindow"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:DesignDataDemo"
        Title="MainWindow" mc:Ignorable="d" xmlns:d="https://schemas.microsoft.com/expression/blend/2008" xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="350" d:DesignWidth="525" SizeToContent="WidthAndHeight">

d:DesignWidth

Задает ширину корневого элемента во время разработки независимо от ширины во время выполнения. Автоматически добавляется при щелчке на теге root size (Тег размера корня).

<Window x:Class="DesignDataDemo.MainWindow"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:DesignDataDemo"
        Title="MainWindow" mc:Ignorable="d" xmlns:d="https://schemas.microsoft.com/expression/blend/2008" xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="350" d:DesignWidth="525" SizeToContent="WidthAndHeight">

d:DataContext

Задает контекст данных времени разработки для элемента управления и его дочерних элементов. Типичный подход заключается в объявлении связываний элемента управления в представлении XAML и установке свойства DataContext, которое используется для заполнения связываний во время выполнения. При использовании такого подхода можно установить d:DataContext таким образом, чтобы конструктор знал о форме ваших типов. Это позволит использовать построитель связывания данных для создания связываний в конструкторе. Дополнительные сведения см. в разделе Пошаговое руководство. Создание привязки данных с помощью конструктора WPF.

<Grid d:DataContext="{d:DesignInstance Type=local:Customer}" Name="_grid">

d:DesignInstance

Используется как часть объявления d:DataContext или d:DesignSource. Задает тип, который можно использовать в качестве источника данных для привязки элементов управления в конструкторе. Этот тип не обязательно должен быть создаваемым в XAML. Дополнительные сведения см. в разделе Пошаговое руководство. Использование свойства DesignInstance для привязки данных в конструкторе.

<Grid d:DataContext="{d:DesignInstance Type=local:Customer}" Name="_grid">

d:DesignData

Используется как часть объявления d:DataContext или d:DesignSource. Задает файл XAML, содержащий образцы данных для использования во время разработки. Используйте действия построения DesignData или DesignDataWithDesignTimeCreatableTypes для интеграции образца данных в проект. Доступным только для чтения свойствам можно присваивать значения. Дополнительные сведения см. в разделе Пошаговое руководство. Использование выборки данных в конструкторе WPF.

<StackPanel d:DataContext="{d:DesignData Source=./DesignData/SampleCustomer.xaml}" Grid.Row="0"></StackPanel>

d:DesignSource

Задает источник данных времени разработки для CollectionViewSource. Таким образом конструктор информируется о форме ваших типов. Это позволит использовать построитель связывания данных для создания связываний.

<CollectionViewSource x:Key="CustomerViewSource" d:DesignSource="{d:DesignInstance local:Customer, CreateList=True}" /> 

d:IsDesignTimeCreatable

В расширении разметки d:DesignInstance указывает, что экземпляр разработки создается из типа, представленного разработчиком, а не из заменяющего типа, созданного конструктором.

<Grid d:DataContext="{d:DesignInstance local:Customer, IsDesignTimeCreatable=True}">

d:CreateList

В расширении разметки d:DesignInstance указывает, что экземпляр разработки является списком указанного типа.

<CollectionViewSource x:Key="CustomerViewSource" d:DesignSource="{d:DesignInstance local:Customer, CreateList=True}" />

d:Type

В расширении разметки d:DesignInstance указывает тип для создания. Используйте d:IsDesignTimeCreatable, чтобы указать, создается ли экземпляр, тип или замещающий тип, созданный конструктором.

<CollectionViewSource x:Key="CustomerViewSource" d:DesignSource="{d:DesignInstance Type=local:Customer, CreateList=True}" />

Доступ к атрибутам времени разработки

Доступ к атрибутам времени разработки осуществляется посредством пространства имен https://schemas.microsoft.com/expression/blend/2008. Это пространство имен автоматически сопоставляется по щелчку на теге root size (Тег размера корня) в нижнем правом углу MainWindow в конструкторе.

Действия при построении

Чтобы включить d:DesignData, нужно задать действия при построении в файлах XAML, содержащих образцы данных. В следующей таблице указаны эти действия при построении. Дополнительные сведения см. в разделе Пошаговое руководство. Использование выборки данных в конструкторе WPF.

Действие при построении

Описание

DesignData

Это действие построения используется, когда примеры типов данных не могут быть созданы или имеют свойства только для чтения, для которых требуется определить примеры значений данных. Конструктор WPF и Silverlight создает подстановочные типы, имеющие такие же свойства, как и типы бизнес-объекта. Ваши типы не обязательно должны быть создаваемыми. Это позволяет избежать сложностей, связанных с методами фабрик, абстрактными типами и подключениями к базам данных. Доступным только для чтения свойствам можно присваивать значения.

DesignDataWithDesignTimeCreatableTypes

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

См. также

Задачи

Пошаговое руководство. Создание привязки данных с помощью конструктора WPF

Пошаговое руководство. Использование свойства DesignInstance для привязки данных в конструкторе

Другие ресурсы

Пошаговое руководство. Использование выборки данных в конструкторе WPF