Файлы XAML Data Standard

Все диалоговые окна Data Standard основаны на файле с расширением XAML (расширяемый язык разметки приложений). Диалоговое окно Data Standard можно настроить, изменив файл XAML.

Обзор

В файлах XAML описывается компоновка диалогового окна Data Standard, включая используемые элементы управления (метка, текстовое поле, поле со списком и т. д.) и свойства САПР или Vault, к которым они привязаны.

Файлы XAML представляют собой файлы XML, и их можно отредактировать с помощью любого текстового редактора или редактора XML. Например, бесплатный Блокнот Microsoft XML или любой другой редактор, который поддерживает форматирование XML. Для максимального удобства Autodesk рекомендует использовать Visual Studio (Express или более поздние версии). Поскольку в синтаксисе XAML учитывается регистр, рекомендуется использовать редактор с поддержкой заглавных букв и отслеживанием опечаток.

Если в диалоговом окне Data Standard необходимо показать больше или меньше сведений или отобразить другую информацию, отредактируйте файл XAML. Файлы PS1, расположенные в папке конфигурации, позволяют управлять поведением диалогового окна.

Данный раздел содержит краткое описание часто используемых элементов управления. Дополнительные сведения об этих и других элементах управления можно найти в справочной системе Microsoft.

Структура файла XAML

Каждый файл XAML включает в себя различные разделы: разделы ресурсов, стилей и элементов управления используются наиболее часто.

В разделе ресурсов размещаются определения, которые повторно используются в разделе элементов управления. Например, если корпоративным цветом компании является зеленый цвет, можно задать, чтобы любой текст на элементах управления отображался зеленым цветом.

Триггеры расположены в разделе стилей. Триггеры определяют внешний вид или поведение элемента управления в зависимости от конкретной ситуации (например, при создании новой или редактировании существующей записи). Более сложные типы поведения определяются в файлах PS1.

Раздел элементов управления, или область листа, обычно начинается с элемента <Grid>. Сетка делит диалоговое окно на строки и столбцы, как в таблице Excel. Объединение и разделение ячеек выполняется в соответствии с требованиями проекта. В каждой ячейке можно разместить один или несколько элементов управления, например метки для простого текста или текстовые поля для ввода текста.

Компоновка

Компоновка файла XAML аналогична таблице со строками и столбцами. За счет этого диалоговое окно и элементы управления становятся динамическими, что означает, что при изменении размера окна с помощью мыши размер элементов управления также автоматически изменяется. Кроме того, можно работать с фиксированными координатами, но в таком случае, когда размер диалогового окна изменяется пользователем или если для окон настроен более крупный шрифт, элементы управления в диалоговом окне остаются на своем месте и могут перекрываться либо доступное пространство диалогового окна может не использоваться ими. По этой причине Autodesk рекомендует пользоваться табличным стилем, при котором каждый элемент управления увеличивается внутри заданной ячейки.

Поскольку диалоговое окно подобно таблице, при его проектировании следует подумать о необходимом количестве столбцов и строк. Как правило, достаточно двух столбцов: один слева (с фиксированной шириной для меток) и один справа (с динамической шириной для элементов управления). Точно таким образом устроены стандартные диалоговые окна. В зависимости от необходимого количества строк в сетке задаются соответствующие определения строк. Чтобы элементы управления отображались соответствующим образом, каждый из них имеет ссылку на строку и столбец (всегда начиная с 0) внутри сетки.

Синтаксис

В файлах XML и XAML каждое ключевое слово заключается в треугольные скобки (<ключевое слово>). Как правило, блок определения начинается с ключевого слова (например, ) и заканчивается тем же самым ключевым словом, перед которым ставится косая черта (например, ). Если выражение помещается в одной строке, можно также встретить следующий синтаксис: <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) представляет собой элемент пользовательского интерфейса, который обеспечивает простой способ инициации события (например, «Найти» или «Сохранить»). Для кнопки требуется свойство 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

Файл XAML можно отредактировать с помощью Visual Studio. Visual Studio позволяет размещать элементы и избегать орфографических ошибок.

Примечание. В соответствии с инструкциями в данном разделе требуется Visual Studio Express для Windows или более высокой версии. Если приложение Visual Studio не установлено, его можно загрузить с веб-сайта Microsoft.

Пример настройки Visual Studio

  1. После установки Visual Studio запустите приложение и щелкните поле «Создать проект».
  2. Выберите приложение WPF и назначьте для проекта выбранное имя и расположение. Необходимо также задать путь по умолчанию, чтобы в случае, если потребуется неоднократно изменять диалоговое окно Data Standard, этот проект можно было использовать повторно.

После создания и открытия проекта отобразятся вкладки MainWindow.xaml, MainWindow.xam.cs и другие. Вкладки не нужны, нужна только среда для редактирования файла XAML. Для редактирования файлов XAML требуется ссылка на файл XAML. Добавлять файл XAML в проект не требуется.

  1. Правой кнопкой мыши щелкните проект в обозревателе решений и переместите его в раздел «Добавить» > «Существующий элемент».

  2. Найдите файл XAML в обозревателе решений и выберите «Добавить как связь».

    Примечание. Если нужный файл XAML не отображается, измените тип файла над кнопкой «Добавить».
  3. После того как файл XAML отобразится в обозревателе решений, дважды щелкните его.

    Отображается сообщение об ошибке "Проблема при загрузке".

  4. В списке ошибок в нижней части окна Visual Studio найдите ошибку с сообщением о том, что сборки и свойства ресурсов не найдены.

  5. Перейдите в обозреватель решений и щелкните правой кнопкой мыши пункт "Ссылки".

  6. Выберите "Добавить ссылки".

  7. Выберите вкладку «Обзор» и выполните поиск:

    • dataStandard.UI.DLL по следующему пути: C:\ProgramData\Autodesk\Inventor 2018\Addins\Data Standard. Выберите указанный файл и нажмите ОК.
    • CreateObject.dll по следующему пути: C:\ProgramData\Autodesk\Vault 2018\Extensions\Data Standard. Выберите указанный файл и нажмите ОК.
    • Autodesk.Connectivity.Webservices.DLL по следующему пути: C:\Program Files\Autodesk\Vault 2018\. Выберите указанный файл и нажмите ОК.
  8. Если изменения касаются САПР, выберите файл CFG, который требуется изменить в обозревателе решений.

Диалоговое окно отображается в проектном окне. Можно выбрать область в диалоговом окне, и Visual Studio выполнит переход в соответствующую часть файла XAML. Выполните вставку или редактирование полей. Дополнительные сведения см. в разделе Диалоговые окна Data Standard.

Добавление поля в диалоговое окно

  1. Определите место для добавления нового поля. В какой строке и каком столбце должно появиться новое свойство?
  2. Добавьте новую строку в сетку, чтобы в этом месте можно было разместить элемент управления. При необходимости добавьте новый столбец. Перейдите в файл XAML в элементе управления сетки, который содержит новый элемент управления. Для этой сетки можно найти <Grid.RowDefinitions> и <RowDefinition .../>. Добавьте дополнительный атрибут <RowDefinition/>, если требуется отобразить новую строку. Задайте для свойства Height соответствующее значение: фиксированное, автоматическое (минимальное пространство) или * (максимальное пространство).
  3. Добавьте элемент управления, например метку или текстовое поле, в области рядом с другими элементами управления. С помощью атрибутов Grid.Row и Grid.Column можно определить, в каких строке и столбце размещается элемент управления. Кроме того, определите связывание для элемента управления, чтобы беспрепятственно передавать данные от элемента управления к свойству. Если изменения предназначены для САПР, необходимо также настроить свойство в соответствующем файле CFG.
  4. При добавлении новой строки все элементы управления, расположенные в той же строке ниже, необходимо переместить вниз, увеличив для них значение атрибута Grid.Row.