Все диалоговые окна Data Standard основаны на файле с расширением XAML (расширяемый язык разметки приложений). Диалоговое окно Data Standard можно настроить, изменив файл XAML.
В файлах XAML описывается компоновка диалогового окна Data Standard, включая используемые элементы управления (метка, текстовое поле, поле со списком и т. д.) и свойства САПР или Vault, к которым они привязаны.
Файлы XAML представляют собой файлы XML, и их можно отредактировать с помощью любого текстового редактора или редактора XML. Прекрасным бесплатным редактором XML является Блокнот XML Microsoft или любой другой редактор, предусматривающий форматирование XML. Для максимального удобства Autodesk рекомендует использовать Visual Studio (Express или более поздние версии). Поскольку в синтаксисе XAML учитывается регистр, рекомендуется использовать редактор с поддержкой заглавных букв и отслеживанием опечаток.
Если в диалоговом окне Data Standard необходимо показать больше или меньше сведений или отобразить другую информацию, отредактируйте файл XAML. Файлы PS1, расположенные в папке конфигурации, позволяют управлять поведением диалогового окна.
Данный раздел содержит краткое описание часто используемых элементов управления. Дополнительные сведения об этих и других элементах управления можно найти в справочной системе Microsoft.
Каждый файл XAML включает в себя различные разделы: разделы ресурсов, стилей и элементов управления используются наиболее часто.
В разделе ресурсов размещаются определения, которые повторно используются в разделе элементов управления. Например, если корпоративным цветом компании является зеленый цвет, можно задать, чтобы любой текст на элементах управления отображался зеленым цветом.
Триггеры расположены в разделе стилей. Триггеры определяют внешний вид или поведение элемента управления в зависимости от конкретной ситуации (например, при создании новой или редактировании существующей записи). Более сложные типы поведения определяются в файлах PS1.
Раздел элементов управления, или область листа, обычно начинается с элемента <Grid>. Сетка делит диалоговое окно на строки и столбцы, как в таблице Excel. Объединение и разделение ячеек выполняется в соответствии с требованиями проекта. В каждой ячейке можно разместить один или несколько элементов управления, например метки для простого текста или текстовые поля для ввода текста.
Компоновка файла XAML аналогична таблице со строками и столбцами. За счет этого диалоговое окно и элементы управления становятся динамическими, что означает, что при изменении размера окна с помощью мыши размер элементов управления также автоматически изменяется. Кроме того, можно работать с фиксированными координатами, но в таком случае, когда размер диалогового окна изменяется пользователем или если для окон настроен более крупный шрифт, элементы управления в диалоговом окне остаются на своем месте и могут перекрываться либо доступное пространство диалогового окна может не использоваться ими. По этой причине Autodesk рекомендует пользоваться табличным стилем, при котором каждый элемент управления увеличивается внутри заданной ячейки.
Поскольку диалоговое окно подобно таблице, при его проектировании следует подумать о необходимом количестве столбцов и строк. Как правило, достаточно двух столбцов: один слева (с фиксированной шириной для меток) и один справа (с динамической шириной для элементов управления). Точно таким образом устроены стандартные диалоговые окна. В зависимости от необходимого количества строк в сетке задаются соответствующие определения строк. Чтобы элементы управления отображались соответствующим образом, каждый из них имеет ссылку на строку и столбец (всегда начиная с 0) внутри сетки.
В файлах XML и XAML каждое ключевое слово заключается в треугольные скобки (<ключевое слово>). Как правило, блок определения начинается с ключевого слова (например, <Grid>) и заканчивается тем же самым ключевым словом, перед которым ставится косая черта (например, </Grid>). Если выражение помещается в одной строке, можно также встретить следующий синтаксис: <Label ... />. Дополнительные атрибуты ключевого слова или дополнительные ключевые слова, вложенные в выражение, определяют структуру диалогового окна. В файлах XAML учитывается регистр, поэтому следует обращать внимание на заглавные и строчные буквы.
Grid
Сетка (Grid) представляет собой панель компоновки для управления всеми элементами с помощью табличной структуры из строк и столбцов. Каждая ячейка (определяется уникальной комбинацией строки и столбца) может содержать несколько элементов управления (таких как метки и текстовые поля).
Это базовая структура сетки. Для сетки требуется несколько строк, которые определяются в части Grid.RowDefinition. Значение высоты 30 задает фиксированное значение высоты, которое не может изменяться. Значение "auto" задает для строки динамическое значение высоты, так что высота строки может изменяться с учетом элементов управления. Такие же значения применяются к ширине столбца.
После определения строк и столбцов можно добавить элементы управления, например метки и текстовые поля. Элементы управления необходимо присоединить к двум свойствам: Grid.Column и Grid.Row. Эти свойства определяют расположение элемента управления в сетке. Значение первой строки — 0, второй — 1 и так далее.
Label
Метки (Label) представляют собой нередактируемые пользователем имена полей. Они содержат текст, определяющий назначение метки и позволяющий пользователю определить, значение какого типа необходимо вставить в соответствующее текстовое поле или поле со списком. Например, рядом с пустым текстовым полем может быть метка с именем "Комментарии". Таким образом, пользователь поймет, что здесь необходимо оставить комментарий.
Метка имеет свойство Content. Это свойство представляет собой текст, отображаемый для метки.
<Label Content="sample" Grid.Row ="0" Grid.Colum="0"/>
В стандартных диалоговых окнах строки кода выглядят следующим образом: <Label Content="{Binding UIString[LBL2]}" ....>, где свойство Content привязано к локализованному тексту. Этот синтаксис используется, когда в диалоговом окне отображается текст на разных языках. Если в проекте используется только один язык, задайте текст, который требуется отобразить. Если диалоговое окно необходимо локализовать, используйте синтаксис локализации. Дополнительные сведения см. в разделе Локализация.
TextBox
Текстовые поля (TextBox) — это строки, которые можно редактировать. Data Standard может считывать введенные значения и использовать их для других операций.
<ComboBox Name="MaterialCombo" Text="{Binding Prop[Cost].Value}" Grid.Column="3" Grid.Row="6" ItemsSource="{Binding Prop[Cost].ListValues}"/>
Button
Кнопка (Button) представляет собой элемент пользовательского интерфейса, который обеспечивает простой способ инициации события (например, «Найти» или «Сохранить»). Для кнопки требуется свойство Command. Это свойство определяет действие, которое выполняется при нажатии кнопки.
<Button Command="{Binding PsCmd[MyCommand]}" Grid.Column="1" Margin="0,5,0,5" Width="80">Click</Button>
Свойство Command привязано к ключевому слову PsCmd, которое позволяет связать действие команды с заданной функцией PowerShell. Аргументы можно передавать функции при помощи атрибута CommandParameter="my args". Аргумент будет доступен в функции в качестве переменной $dsParam.
Binding
Чтобы использовать один из этих компонентов для управления свойством файла Vault или его изменения, необходимо изучить компонент "{Binding Prop[myProp ].Value}"
Связывание (Binding) позволяет сопоставлять значения определенным свойствам САПР или Vault. Например, можно связать текст в текстовом поле со свойством Title, чтобы каждый раз при вводе данных в это конкретное текстовое поле свойство Title автоматически обновлялось. Связывание позволяет автоматизировать изменение свойств, благодаря чему пользователю приходится выполнять меньше операций.
Prop[ ] является важной функцией для связывания. С ее помощью можно вызвать свойства файла (САПР и Vault) или соответствующий объект (папку, элемент, пользовательский объект и т. д.). Если необходимо сопоставить текстовое поле со свойством Engineer, напишите <TextBox text="{Binding Prop[Engineer].Value}"/>. После создания текстового поля функция Prop[ ] возвращает значение этого свойства. При каждом обновлении текстового поля функции Prop[ ] отправляется уведомление, и она выполняет запись нового значения в сопоставленное свойство файла.
Файл XAML можно отредактировать с помощью Visual Studio. Visual Studio позволяет размещать элементы и избегать орфографических ошибок.
После создания и открытия проекта отобразятся вкладки MainWindow.xaml, MainWindow.xam.cs и другие. Вкладки не нужны, нужна только среда для редактирования файла XAML. Для редактирования файлов XAML требуется ссылка на файл XAML. Добавлять файл XAML в проект не требуется.
Отображается сообщение об ошибке "Проблема при загрузке".
Диалоговое окно отображается в проектном окне. Можно выбрать область в диалоговом окне, и Visual Studio выполнит переход в соответствующую часть файла XAML. Выполните вставку или редактирование полей. Дополнительные сведения см. в разделе Диалоговые окна Data Standard.