Arquivos XAML do Data Standard

Todas as caixas de diálogo do Data Standard são baseadas em um arquivo com a extensão .XAML (Extensible Application Markup Language). Para personalizar a caixa de diálogo do Data Standard, modifique o arquivo XAML.

Visão geral

Os arquivos XAML descrevem o layout da caixa de diálogo do Data Standard, incluindo quais controles (legenda, caixa de texto, caixa combo etc.) são usados e a quais propriedades do CAD ou do Vault os controles estão vinculados.

Os arquivos XAML são arquivos XML e podem ser editados com qualquer editor de texto/XML. Uma boa escolha para um editor XML gratuito é o Bloco de Notas XML da Microsoft ou qualquer outro editor que possa formatar XML. A Autodesk recomenda o Visual Studio (Express ou posterior) para uma melhor experiência de edição. Como a sintaxe XAML diferencia maiúsculas de minúsculas, é melhor usar um editor que ofereça suporte a maiúsculas e detecte erros de ortografia.

Se uma caixa de diálogo do Data Standard precisar mostrar mais ou menos informações ou informações diferentes, você poderá editar o arquivo XAML. Os arquivos PS1 localizados na pasta de configuração controlam o comportamento da caixa de diálogo.

Este tópico fornece uma breve descrição dos controles mais usados. Para obter mais informações sobre esses e outros controles, acesse as páginas de ajuda da Microsoft.

Anatomia de um arquivo XAML

Cada arquivo XAML tem diferentes seções: as seções mais usadas são Recurso, Estilo e de controles.

Na seção Recurso, há definições que são reutilizadas nas seções de controle. Por exemplo, se a cor da sua empresa é verde, você pode estabelecer que todo texto exibido nos controles seja verde.

Na seção Estilo, você encontrará ativadores. Os ativadores definem a aparência e o comportamento dos controles, dependendo da situação (por exemplo, criação de um novo registro ou edição de um registro existente). No entanto, comportamentos mais complexos são definidos nos arquivos PS1.

Normalmente, a seção de controles, ou área de layout, começa com o controle <Grid>. A grade divide a caixa de diálogo em linhas e colunas, como uma tabela do Excel. Combine e divida células conforme as exigências do projeto. Em cada célula, é possível inserir um ou mais controles, como legendas, para textos simples, ou caixas de texto, para entradas de texto.

Layout

O layout de um arquivo XAML é similar ao de uma tabela, pois apresenta linhas e colunas. Isso torna a caixa de diálogo e seus controles dinâmicos, o que significa que, se você redimensionar a janela com o mouse, os controles também serão redimensionados automaticamente. Também é possível trabalhar com coordenadas fixas, mas nesse caso, quando a caixa de diálogo é redimensionada pelo usuário ou quando alguns usuários usam uma fonte maior nas janelas, os controles da caixa de diálogo permanecem em suas coordenadas e possivelmente sobrepõem ou não consomem o espaço disponível na caixa de diálogo. Por esse motivo, a Autodesk recomenda usar tabelas e permitir que cada controle seja expandido dentro da célula definida.

Como a caixa de diálogo é igual a uma tabela, ao projetá-la, pense em quantas colunas e linhas você precisa. Geralmente, é fácil criar duas colunas: uma à esquerda com largura fixa para as legendas e outra à direita com largura dinâmica para os controles. Também é assim que as caixas de diálogo padrão são criadas. Dependendo do número de linhas necessárias, definições de linha podem ser especificadas na grade. Cada controle da grade (Grid) tem uma referência para a linha e a coluna (sempre começando com 0), de modo que o controle seja exibido de acordo.

Sintaxe

Em XML e XAML, todas as palavras-chave são colocadas entre chaves (). Normalmente, um bloco de definição começa com uma palavra-chave, como , e termina com a mesma palavra-chave precedida por uma barra, como . No caso de uma instrução de linha única, você também poderá encontrar esta sintaxe: <Label ... />. Outros atributos da palavra-chave, ou outras palavras-chave aninhadas no bloco, definem a estrutura da caixa de diálogo. XAML diferencia maiúsculas de minúsculas; portanto, preste atenção nas letras.

Controles mais usados

Grade (Grid)

A grade (Grid) é um painel de layout que controla tudo em uma estrutura de tabela contendo linhas e colunas. Todas as células (uma célula é exclusiva com sua combinação de uma linha e uma coluna) podem conter vários controles, como legendas e caixas de texto.

Esta é a estrutura básica de uma grade. A grade precisa de linhas, que você pode definir na peça Grid.RowDefinition. A altura 30 define um valor fixo para a altura e não pode ser alterada depois. O valor "automático" dá à linha uma altura dinâmica, por isso ela pode ficar mais espessa ou mais fina, dependendo dos controles. Os mesmos valores se aplicam à largura da coluna.

Depois de definir linhas e colunas, você pode adicionar controles, como legendas e caixas de texto. Os controles devem ser anexados em duas propriedades: Grid.Column e Grid.Row. Essas propriedades definem a localização do controle na grade. A primeira linha é 0, de modo que a segunda linha é 1 e assim por diante.

Legenda (Label)

As legendas (Labels) são nomes de campo que o usuário não pode editar. Elas contêm texto que indica sua finalidade. Dessa forma, o usuário fica sabendo que tipo de valor deve ser inserido na caixa de texto ou na caixa de combinação correspondente. Por exemplo, uma legenda chamada Comentários pode estar localizada ao lado de uma caixa de texto vazia. Isso informa ao usuário que ele deve inserir comentários na caixa de texto.

A legenda (Label) tem uma propriedade de conteúdo. Essa propriedade é o texto que é exibido na legenda.

<Label Content="sample" Grid.Row ="0" Grid.Colum="0"/>

Nas caixas de diálogo padrão, há sequências de caracteres de código como esta <Label Content="{Binding UIString\[LBL2\]}" ....>, em que o conteúdo é vinculado a um texto localizado. Essa sintaxe é usada quando a caixa de diálogo exibe texto em diferentes idiomas. Se seu projeto precisar de apenas um idioma, defina o texto que deseja exibir. Se a caixa de diálogo precisar ser localizada, use a sintaxe de localização. Consulte Localização para obter mais informações.

Caixa de texto (TextBox)

As caixas de texto são campos que podem ser editados pelo usuário. O Padrão de dados pode ler o valor inserido e usá-lo para outras operações.

A caixa de texto precisa das seguintes propriedades:

<ComboBox Name="MaterialCombo" Text="{Binding Prop[Cost].Value}" Grid.Column="3" Grid.Row="6" ItemsSource="{Binding Prop[Cost].ListValues}"/>

Botão

Um botão é um elemento de interface do usuário que oferece ao usuário uma maneira simples de ativar um evento como Pesquisar ou Salvar. O botão precisa da propriedade Command. A propriedade Command identifica que ação será executada quando o usuário clicar no botão.

<Button Command="{Binding PsCmd[MyCommand]}" Grid.Column="1" Margin="0,5,0,5" Width="80">Click</Button>

Command está vinculado à palavra-chave PsCmd, que ajuda a vincular a ação do comando à função do PowerShell determinada. É possível passar argumentos para a função utilizando o atributo CommandParameter="my args". O argumento ficará disponível dentro da função como a variável $dsParam.

Associação

Para utilizar um desses componentes para controlar ou alterar uma propriedade de arquivo do Vault, você precisa entender "{Binding Prop[myProp ].Value}".

A associação permite mapear valores para determinadas propriedades do Vault ou de CAD. Por exemplo, é possível associar o texto de uma caixa de texto à propriedade Title. Dessa forma, sempre que dados forem inseridos nessa caixa de texto específica, a propriedade Title será atualizada automaticamente. A associação é uma excelente maneira de automatizar alterações de propriedade e representa menos trabalho para o usuário final

Prop[ ] é uma função essencial para associação. Com ela, é possível acessar as propriedades de um arquivo (CAD e Vault) ou de um objeto relacionado (pasta, item, objeto personalizado, etc.). Se você deseja mapear uma caixa de texto para a propriedade Engineer, escreva <TextBox text="{Binding Prop[Engineer].Value}"/>. Quando a caixa de texto é criada, Prop[ ] retorna o valor dessa propriedade. Sempre que a caixa de texto é atualizada, ela notifica a função Prop[ ], que escreve o novo valor para a propriedade de arquivo mapeada.

Editar arquivos XAML com o Visual Studio

É possível usar o Visual Studio para editar o arquivo .xaml. O Visual Studio ajuda você a inserir os elementos e evitar erros de ortografia.

Observação: É necessário ter o Visual Studio Express para Windows ou superior para seguir as instruções neste tópico. Se você ainda não tiver o Visual Studio, poderá fazer o download no site da Microsoft.

Exemplo de configuração do Visual Studio:

  1. Depois que o Visual Studio estiver instalado, inicie o aplicativo e clique no campo Novo projeto.
  2. Selecione o aplicativo WPF e dê ao novo projeto o nome e a localização desejados. Você também deve definir o caminho padrão; portanto, se quiser alterar a caixa de diálogo Padrão de dados mais de uma vez, sempre poderá utilizar esse projeto novamente.

Agora que está no novo projeto, você poderá ver a guia MainWindow.xaml, a guia MainWindow.xam.cs e outras. Você não precisa das guias, apenas do ambiente fornecido para editar o arquivo .xaml. Para fins de edição do arquivo .xaml, convém criar um vínculo com esse arquivo. Não é necessário colocar o .xaml no projeto.

  1. No Gerenciador de soluções, clique com o botão direito do mouse no projeto e mova-o para Adicionar>Item existente.

  2. Navegue para o arquivo .xaml em Gerenciador de Soluções e selecione Adicionar como link.

    Observação: Se você não visualizar o arquivo .xaml, altere o tipo do arquivo acima do botão Adicionar.
  3. Quando o arquivo .xaml aparecer no Gerenciador de Soluções, clique duas vezes nele.

    Será exibido um erro chamado Problema ao carregar.

  4. Na lista de erros na parte inferior da janela do Visual Studio, localize o erro que informa que montagens e propriedades ou recursos não foram encontrados.

  5. Vá até o Gerenciador de Soluções e clique com o botão direito do mouse em Referências.

  6. Selecione Adicionar referências.

  7. Selecione a guia Procurar e pesquise por:

    • dataStandard.UI.DLL neste caminho: C:\ProgramData\Autodesk\Inventor 2018\Addins\Data Standard. Selecione-o e clique em OK.
    • CreateObject.DLL neste caminho: C:\ProgramData\Autodesk\Vault 2018\Extensions\Data Standard. Selecione-o e clique em OK.
    • Autodesk.Connectivity.Webservices.DLL neste caminho: C:\Arquivos de Programas\Autodesk\Vault 2018\ . Selecione-o e clique em OK.
  8. Se as alterações forem para CAD, selecione o arquivo .cfg que deseja modificar no Gerenciador de Soluções.

A caixa de diálogo é exibida na janela de desenho. Nesse momento, você pode selecionar uma área na caixa de diálogo, e o Visual Studio vai para essa parte no arquivo xaml. Comece a inserir ou modificar campos. Consulte Caixas de diálogo do Data Standard para obter mais informações.

  1. Decida onde deseja adicionar o novo campo. Em qual linha e em qual coluna a nova propriedade deve aparecer?
  2. Adicione uma nova linha à grade para que o controle possa ser inserido nessa posição. Se uma nova coluna for necessária, adicione-a. Acesse o arquivo XAML no controle grade (Grid) que contém o novo controle. Para essa grade, você encontrará <Grid.RowDefinitions> e <RowDefinition .../>. Adicione outro <RowDefinition/> onde você deseja que a nova linha seja exibida. Defina a propriedade Height para o valor correspondente, um valor fixo ou automático (para espaço mínimo) ou * (para espaço máximo).
  3. Adicione o controle, como legenda (Label) e caixa de texto (TextBox), dentro da área perto dos outros controles. Com os atributos Grid.Row e Grid.Column, é possível definir em qual linha e coluna o controle é colocado. Você também pode definir as associações do controle. Dessa forma, os dados poderão fluir entre o controle e a propriedade. Se pretender fazer alterações no CAD, você também deve configurar a propriedade no arquivo CFG correspondente.
  4. Quando você adiciona uma nova linha, todos os controles que estavam na linha de mesmo número e abaixo dela devem ser movidos para baixo. Para isso, incremente o atributo Grid.Row dos controles.