Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Visual Studio Modeling and Visualization SDK (VMSDK) innehåller flera nivåer där du kan definiera modelleringsverktyg:
Definiera ett domänspecifikt språk (DSL) med hjälp av DSL-definitionsdiagrammet. Du kan snabbt skapa en DSL med en diagrammatisk notation, ett läsbart XML-formulär och de grundläggande verktyg som krävs för att generera kod och andra artefakter. Mer information finns i Hur man definierar ett domänspecifikt språk.
Finjustera DSL med hjälp av mer avancerade funktioner i DSL-definitionen. Du kan till exempel få ytterligare länkar att visas när användaren skapar ett element. Dessa tekniker uppnås främst i DSL-definitionen, och vissa kräver några rader programkod.
Utöka dina modelleringsverktyg med hjälp av programkod. VMSDK är särskilt utformat för att göra det enkelt att integrera dina tillägg med den kod som genereras från DSL-definitionen. Mer information finns i Skriva kod för att anpassa ett domänspecifikt språk.
Anmärkning
När du har uppdaterat DSL Definitions-filen ska du inte glömma att klicka på Transformera alla mallar i verktygsfältet i Solution Explorer innan du återskapar lösningen.
Artikelreferens
| För att uppnå denna effekt | Läs det här avsnittet |
|---|---|
| Tillåt att användaren anger färg- och formategenskaperna för en form. | Högerklicka på formen eller kopplingsklassen, peka på Lägg till exponerad och klicka på ett objekt. |
| Olika klasser av modellelement ser likadana ut i diagrammet och delar egenskaper som inledande höjd och bredd, färg, knappbeskrivningar. | Använd arv mellan former eller kopplingsklasser. Mappningar mellan härledda former och härledda domänklasser ärver mappningsinformationen för föräldrarna. Eller mappa olika domänklasser till samma formklass. |
| En klass av modellelement visas av olika former och kontexter. | Mappa mer än en formklass till samma domänklass. När du skapar lösningen följer du felrapporten och anger den begärda koden för att bestämma vilken form som ska användas. |
| Formfärg eller andra funktioner som teckensnitt anger aktuellt tillstånd. | Se Uppdatera former och kopplingar för att återspegla modellen. Skapa en regel som uppdaterar de exponerade egenskaperna. Se Regler som sprider ändringar i modellen. Du kan också använda OnAssociatedPropertyChanged() för att uppdatera funktioner som inte exponeras, till exempel länkpilar eller teckensnitt. |
| Ikonen ändras för att indikera tillstånd. | Ange synligheten för dekoratörsmappningen i DSL-detaljfönstret. Leta upp flera bilddekoratörer på samma position. Se Uppdatera former och kopplingar för att återspegla modellen. Eller åsidosätt ImageField.GetDisplayImage(). Se exemplet i ImageField. |
| Ange en bakgrundsbild på valfri form | Åsidosätt InitializeInstanceResources() för att lägga till ett förankrat ImageField. |
| Bädda in former till valfri djup | Konfigurera ett rekursivt inbäddningsträd. Definiera BoundsRules så att de innehåller formerna. |
| Fäst kontakter vid fasta punkter på en elements gräns. | Definiera inbäddade terminalelement som representeras av små portar i diagrammet. Använd BoundsRules för att låsa fast portarna på plats. Se kretsdiagramexemplet i Visualisering och modellerings-SDK. |
| Textfältet visar ett värde som härletts från andra värden. | Mappa textformatteraren till en beräknad eller anpassad lagringsdomänsegenskap. Mer information finns i Beräknade och anpassade lagringsegenskaper. |
| Sprida ändringar mellan modellelement eller mellan former | Se också Validering i ett domänspecifikt språk. |
| Sprid ändringar till resurser, såsom andra Visual Studio-tillägg utanför distribueringsplattformen. | Se Händelsehanterare sprider ändringar utanför modellen. |
| Egenskapsfönstret visar egenskaper för ett relaterat element. | Konfigurera vidarebefordran av egenskaper. Se Anpassa egenskapsfönstret. |
| Egenskapskategorier | Egenskapsfönstret är indelat i avsnitt som kallas kategorier. Ange kategori för dina domänegenskaper. Egenskaper med samma kategorinamn visas i samma avsnitt. Du kan också ange kategorin för en relationsroll. |
| Kontrollera användaråtkomst till domänegenskaper | Ange Är browsable false för att förhindra att en domänegenskap visas i fönstret Egenskaper vid körning. Du kan fortfarande koppla den till textdekorationer. Är användargränssnittet skrivskyddat hindrar användare från att ändra en domänegenskap. Programåtkomst till domänegenskapen påverkas inte. |
| Ändra namn, ikon och synlighet för noder i DSL-modellutforskaren. | Se Anpassa modellutforskaren. |
| Aktivera kopiera, klippa ut och klistra in | Ange egenskapen Aktivera kopiera klistra in för noden Redigerare i DSL Explorer. |
| Kopiera referenslänkar och deras mål när ett element kopieras. Kopiera till exempel kommentarer som är kopplade till ett objekt. | Ange egenskapen Sprid kopia för källrollen (representeras av raden på ena sidan av domänrelationen i DSL-definitionsdiagrammet). Skriv kod för att åsidosätta ProcessOnCopy för att få mer komplexa effekter. Se Anpassa kopieringsbeteende. |
| Ta bort, omföräldra eller länka om relaterade element när ett element tas bort. | Ange värdet Sprids bort för en relationsroll. För mer komplexa effekter, åsidosätt metoderna ShouldVisitRelationship och ShouldVisitRolePlayer i MyDslDeleteClosure-klassen, definierad i DomainModel.cs. |
| Bevara formlayout och utseende vid kopiering och dra-och-släpp. | Lägg till former och kopplingar till den kopierade ElementGroupPrototype. Den mest praktiska metoden att åsidosätta är ElementOperations.CreateElementGroupPrototype()Se Anpassa kopieringsbeteende. |
| Klistra in former på en vald plats, till exempel den aktuella markörens position. | Åsidosätt ClipboardCommandSet.ProcessOnCopy() för att använda den platsspecifika versionen av ElementOperations.Merge(). Se Anpassa kopieringsbeteende. |
| Skapa ytterligare länkar vid inklistring | Åsidosätt ClipboardCommandSet.ProcessOnPasteCommand() |
| Aktivera dra och släpp från det här diagrammet, andra DSL:er och Windows-element | Se Så här lägger du till en dra och släpp-hanterare |
| Tillåt att en form eller ett verktyg dras till en underordnad form, till exempel en port, som om den drogs till den överordnade formen. | Definiera ett elementsammanslagningsdirektiv för målobjektklassen för att vidarebefordra det borttagna objektet till det överordnade objektet. Se Anpassa elementskapande och förflyttning. |
| Tillåt att en form eller ett verktyg dras till en form och att ytterligare länkar eller objekt skapas. Till exempel för att tillåta att en kommentar släpps till ett objekt som den ska länkas till. | Definiera ett elementsammanslagningsdirektiv för måldomänklassen och definiera länkarna som ska genereras. I komplexa fall kan du lägga till anpassad kod. Se Anpassa elementskapande och förflyttning. |
| Skapa en grupp med element med ett verktyg. Till exempel en komponent med en fast uppsättning portar. | Åsidosätt initieringsmetoden för verktygslådan i ToolboxHelper.cs. Skapa en elementgruppprototyp (EGP) som innehåller elementen och deras relationslänkar. Se Anpassa verktyg och verktygslådan. Inkludera antingen huvud- och portformerna i EGP eller definiera BoundsRules för att placera portformerna när EGP instansieras. |
| Använd ett anslutningsverktyg för att instansiera flera typer av relationer. | Lägg till Link Connect-direktiv (LCD) till Connection Builder som anropas av verktyget. LCD:erna avgör typen av relation från typerna av de två elementen. Om du vill göra detta beroende av elementens tillstånd kan du lägga till anpassad kod. Se Anpassa verktyg och verktygslådan. |
| Klibbiga verktyg – användaren kan dubbelklicka på valfritt verktyg för att skapa många former eller kopplingar i följd. | I DSL Explorer väljer du Editor noden. I fönstret Egenskaper anger du Använder fästverktygsboxobjekt. |
| Definiera menykommandon | Se Så här gör du: Ändra ett standardmenykommando |
| Begränsa modellen med valideringsregler | Se Validering på ett domänspecifikt språk |
| Generera kod, konfigurationsfiler eller dokument från en DSL. | Generera kod från ett Domain-Specific språk |
| Anpassa hur modeller sparas i filen. | Se Anpassning av fillagringen och XML-serialiseringen |
| Spara modeller i databaser eller andra medier. | Åsidosätt YourLanguageDocData Se Anpassning av fillagring och XML-serialisering |
| Integrera flera DSL:er så att de fungerar som en del av ett program. | Se Integrera modeller med hjälp av Visual Studio Modelbus. |
| Tillåt att din DSL utökas av tredje part och kontrollera tillägget. |
Utöka din DSL med hjälp av MEF Dela klasser mellan DSL:er med hjälp av ett DSL-bibliotek Definiera en låsningsprincip för att skapa Read-Only segment |
Relaterat innehåll
- Hur man definierar ett domänspecifikt språk
- Skriva kod för att anpassa ett Domain-Specific språk
- Modellerings-SDK för Visual Studio – domänspecifika språk
Anmärkning
Komponenten Transformering av textmall installeras automatiskt som en del av arbetsbelastningen för utveckling av Visual Studio-tillägget. Du kan också installera den från fliken Enskilda komponenter i Visual Studio Installer under kategorin SDK:er, bibliotek och ramverk . Installera SDK-komponenten modellering från fliken Enskilda komponenter .