Écrire des applications Windows Presentation Foundation (WPF) à l'aide de XAML (2023)

Ce livre présente les fonctionnalités du langage XAML et montre comment écrire des applications Windows Presentation Foundation (WPF) à l'aide de XAML.

  • Qu'est-ce que XAML

XAML est un langage de balisage déclaratif.Lorsqu'il est appliqué au modèle de programmation .NET Core, XAML simplifie le processus de création d'interfaces utilisateur pour les applications .NET Core.Vous pouvez créer les éléments d'interface utilisateur visibles dans le balisage déclaratif XAML, puis séparer la définition de l'interface utilisateur de la logique d'exécution par des définitions de classe partielles à l'aide de fichiers code-behind associés au balisage.

XAML exprime directement l'installation d'objets à l'aide d'un ensemble spécifique de types de support définis dans les assemblys.Cela diffère de la plupart des autres langages de balisage, qui sont généralement interprétés et non directement liés à la prise en charge d'un système de type.XAML permet un flux de travail où les parties peuvent utiliser différents outils pour gérer l'interface utilisateur et la logique d'une application.

L'exemple suivant montre comment créer un bouton dans l'interface utilisateur.Cet exemple donne un premier aperçu de la manière dont XAML représente une forme courante de programmation dans l'interface utilisateur (il ne s'agit pas d'un exemple complet).

Attention classeXML xaml yaml wxml·
yaml est le langage de configuration Docker, xml est l'interface utilisateur Android et wxml est l'interface utilisateur de l'applet WeChat.

Exemple XML

<table de pile> <bouton contenu="attribuer"/>table de pile>

Interface WPF implémentée par XAML
L'interface ci-dessous utilise le framework Material Design UI
Écrire des applications Windows Presentation Foundation (WPF) à l'aide de XAML (1)

Les sections suivantes décrivent la forme de base de la syntaxe XAML et fournissent un bref exemple de mise en forme.

1.2 Éléments d'objet XAML

La syntaxe des éléments d'objet commence toujours par un angle d'ouverture (<).suivi du nom du type pour en faire une instance.Pour conclure une balise d'élément d'objet, fermez-la avec une parenthèse fermante (>).Vous pouvez également utiliser le formulaire de fermeture automatique sans contenu en complétant la mise en forme avec une barre oblique suivie d'une parenthèse fermante (/>).

<table de pile> <bouton contenu="attribuer"/>table de pile>

1.2.1 Syntaxe des propriétés

Les propriétés d'un objet peuvent souvent être exprimées sous forme d'attributs des éléments de l'objet.chaîne.

<bouton Dossier="bleu" perspective="Rood" contenu="c'est un bouton"/>

1.2.2 Syntaxe des éléments d'attribut

L'exemple suivant vous montre comment définir les mêmes propriétés que dans l'exemple de syntaxe de propriété précédent, mais cette fois, vous utilisez la syntaxe d'élément de propriété pour toutes les propriétés de bouton.

<bouton> <bouton.fond> <pinceau monochrome couleur="bleu"/> bouton.fond> <bouton.avant-plan> <pinceau monochrome couleur="Rood"/> bouton.avant-plan> <bouton.contenu>c'est un boutonbouton.contenu>bouton>

1.2.3 Compilation

Si un attribut particulier est du type collection, les éléments déclarés dans le balisage comme enfants de la valeur de l'attribut feront partie de la collection.Dans ce cas, la collection de sous-objets est définie sur la valeur de la propriété collection.

L'exemple suivant illustre la syntaxe set pour définir la valeur de la propriété GradientStops.

<Pinceau dégradé linéaire> <LinearGradientBrush.GradientStops>  <rupture de pente est compensé="0,0" couleur="Rood" /> <rupture de pente est compensé="1.0" couleur="bleu" /> LinearGradientBrush.GradientStops>Pinceau dégradé linéaire>

1.3 Propriétés du contenu XAML

XAML définit une fonctionnalité de langage qui permet à une classe de spécifier une et une seule de ses propriétés en tant que propriété de contenu XAML.L'élément enfant (TextBox) de l'élément objet (Border) est utilisé pour définir la valeur (300) de la propriété content (Width).En d'autres termes, pour les propriétés de contenu uniquement, vous pouvez omettre l'élément de propriété lors de la définition de la propriété dans le balisage XAML et créer un formulaire parent/enfant plus intuitif dans le balisage.

Par exemple, Border définit la propriété de contenu de Child.Les deux éléments de bordure suivants sont traités de la même manière.Le premier élément utilise la syntaxe d'attribut de contenu et omet l'élément d'attribut Border.Child.Le deuxième élément fait explicitement référence à Border.Child.

(Video) 🔥 C# GUI Tutorial using WPF | XAML | - Windows Presentation Foundation

<Limitation> <zones de texte largeur="300"/>Limitation><Limitation> <grens.sub> <zones de texte largeur="300"/> grens.sub>Limitation>

En règle générale de XAML, la valeur d'un attribut de contenu XAML doit être entièrement spécifiée avant ou après les autres éléments d'attribut.Par exemple, les balises suivantes ne sont pas compilées.

<bouton>Je suis<bouton.fond>bleubouton.fond>bouton bleubouton>

Ce qui suit est compilé

<bouton><bouton.fond>bleubouton.fond>je suis le bouton bleubouton>

1.3.1 Combiner les fonctions de syntaxe de contenu et de collection

Prenons l'exemple suivant.

<table de pile> <bouton>premier boutonbouton> <bouton>deuxième boutonbouton>table de pile>

Ici, chaque bouton est un enfant de StackPanel.Il s'agit d'un format simple et intuitif, deux marques ont été omises pour deux raisons différentes.

Omettez l'élément de propriété StackPanel.Children : StackPanel est dérivé de Panel.Le panneau a configuré Panel.Children en tant que propriété de contenu XAML.

Les éléments d'objet UIElementCollection sont omis : la propriété Panel.Children utilise un type UIElementCollection qui implémente IList.Selon les règles XAML de gestion des collections (telles que IList), la mise en forme des éléments de collection peut être omise.(Dans ce cas, UIElementCollection ne peut pas réellement être instancié car il n'expose pas de constructeur sans arguments, de sorte que l'élément objet UIElementCollection semble être commenté.)

<table de pile> <StackPanel. Les enfants objectent> <bouton>premier boutonbouton> <bouton>deuxième boutonbouton> StackPanel. Les enfants objectent>table de pile>

1.4 Syntaxe des propriétés

1.4.1 Événements (clic, appui long, sélection, focus, etc.)

<bouton Cliquez sur="bouton_clic" >Cliquer ici!bouton>

Outre cet exemple d'écriture de propriétés, il y a beaucoup plus sur les événements et XAML dans WPF.Par exemple, vous pouvez voir ici ce que ClickHandler signifie et comment il est défini.Ceci est couvert dans la section Événements et code XAML plus loin dans cet article.

1.4.2 Capitalisation et espace blanc en XAML

  • En général, XAML est sensible à la casse.Pour l'analyse du type de média, les règles de sensibilité à la casse WPF XAML sont les mêmes que les règles de sensibilité à la casse CLR.
  • Les mots-clés et les primitives XAML sont également sensibles à la casse.Les prix ne sont pas toujours sensibles à la casse.

Le fait qu'une valeur soit sensible à la casse dépend du comportement du convertisseur de type associé à la propriété recevant la valeur ou du type de valeur de la propriété.Par exemple, une propriété qui prend un type booléen peut avoir true ou true comme équivalent, mais uniquement parce que les conversions de type d'analyseur WPF XAML natif qui convertissent les chaînes en booléens autorisent déjà ces valeurs comme équivalents.

1.4.3 Extensions de balisage

Les extensions de balisage sont un concept de langage XAML.Lorsqu'elles sont utilisées pour spécifier une valeur pour la syntaxe d'attribut, les accolades ({ et }) indiquent l'utilisation d'extensions de balisage.Les extensions de balisage les plus couramment utilisées dans la programmation d'applications WPF sont Binding (pour les expressions de liaison de données) et les références de ressources StaticResource et DynamicResource.

Par exemple, le balisage suivant utilise la syntaxe d'attribut pour définir la valeur de l'attribut Style.

<fenêtre X:classe="index.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmln :X="http://schemas.microsoft.com/winfx/2006/xaml" titre="fenêtre 1" haut="100" largeur="300"> <ressources de fenêtre> <pinceau monochrome X:clé="mon pinceau" couleur="Kaneko"/> <style type de cible="Limitation" X:clé="fond de page">"Brosse à poignet"valeur ="bleu"/>"épaisseur limite"valeur ="5"/>style> ressources de fenêtre> <Limitation style="{Arrière-plan de la page des ressources statiques}"> <table de pile> <bloc de texte texte="Bonjour" /> table de pile> Limitation>fenêtre>

Consultez Extensions XAML WPF pour obtenir une liste de référence de toutes les extensions de balisage XAML implémentées spécifiquement dans WPF.Pour obtenir une liste de référence des extensions de balisage définies par System.Xaml qui sont les plus couramment utilisées dans les implémentations .NET Core XAML, consultez Fonctionnalités du langage d'espace de noms XAML (x:).Pour plus d'informations sur les concepts d'extension de balisage, consultez Extensions de balisage et WPF XAML.

1.5 Type d'onduleurs

La structure d'épaisseur est un exemple d'un type dont la transformation peut utiliser XAML.L'épaisseur spécifie une mesure dans des rectangles imbriqués et peut être utilisée comme valeur pour des propriétés telles que les marges.Le placement d'un convertisseur de type d'épaisseur facilite la spécification de toutes les propriétés qui utilisent l'épaisseur en XAML, car elles peuvent être spécifiées en tant que propriétés.L'exemple suivant renvoie une valeur Margin à l'aide de la conversion de type et de la syntaxe de propriété :

<bouton gagner="10,20,10,30" contenu="attribuer"/>

Dans l'exemple ci-dessous, les marges sont définies en écrivant un élément de propriété qui contient un élément d'objet d'épaisseur.

<bouton contenu="attribuer"> <bouton.marge> <épaisseur liens="dix" chemisier="20" À droite="dix" bas="30"/> bouton.marge>bouton>

1.6 Élément racine et espace de noms

Un fichier XAML ne doit avoir qu'un seul élément racine pour être à la fois un fichier XML bien formaté et un fichier XAML valide.Pour les scénarios WPF typiques, utilisez des éléments racine individuels dans le modèle d'application WPF (par exemple, Window ou Page pour les pages, ResourceDictionary pour les dictionnaires externes ou Application pour les définitions d'application).

(Video) Start Building a Desktop App in WPF C# - WPF C# Tutorial Part 1

L'exemple suivant montre l'élément racine d'un fichier XAML standard pour une page WPF, Page.

<Page X:classe="index.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmln :X="http://schemas.microsoft.com/winfx/2006/xaml" titre="Page 1">Page>

L'élément racine contient également les attributs xmlns et xmlns:x.Ces attributs indiquent à l'éditeur XAML quels espaces de noms XAML contiennent des définitions de type qui marquent les références comme types pris en charge pour l'élément.L'attribut xmlns spécifie explicitement l'espace de noms XAML par défaut.

L'attribut xmlns est absolument requis uniquement dans l'élément racine de tout fichier XAML.Pour référencer des éléments XAML à partir d'un assembly WPF, déclarez simplement l'espace de noms XAML par défaut comme xmlns par défaut.

1.6.1x : Préfixe

L'exemple d'élément racine ci-dessus utilise le préfixe x: pour correspondre à l'espace de noms XAML http://schemas.microsoft.com/winfx/2006/xaml

x:Key : spécifie une clé unique pour chaque ressource dans un ResourceDictionary (ou un concept de dictionnaire similaire dans d'autres frameworks).x:Key représente probablement 90 % de toute l'utilisation de x: dans le format d'application WPF typique.

Page>

X : super: spécifie l'espace de noms CLR et le nom de classe de la classe qui fournit le code derrière la page XAML.Chaque modèle de programmation WPF nécessite une telle classe pour la prise en charge du code-behind, vous verrez donc presque toujours des affectations x: même sans ressources.

x : nom: Après le traitement d'un élément d'objet, spécifie le nom de l'objet d'exécution de l'instance tel qu'il existe dans le code d'exécution.Utilisez le code d'exécution pour rechercher des éléments nommés à partir du XAML initialisé.La propriété de ce type la plus courante est FrameworkElement.Name.

x : statique: active les références qui renvoient une valeur statique qui n'est pas une propriété compatible XAML.

X : taper: construit une référence de type à partir d'un nom de type.Il est utilisé pour définir des propriétés qui ont un type (comme Style.TargetType), mais les propriétés ont souvent des capacités inhérentes de chaîne à type, donc l'utilisation de l'extension de balisage x:Type est facultative.

1.6.2 Préfixes personnalisés et typage personnalisé

Pour vos propres assemblys personnalisés ou assemblys WPF non essentiels pour PresentationCore, PresentationFramework et WindowsBase, vous pouvez spécifier l'assembly dans le cadre d'un mappage xmlns personnalisé.Les types de cet assembly peuvent être référencés en XAML tant que le type est correctement implémenté pour prendre en charge l'utilisation de XAML que vous essayez d'utiliser.

Voici un exemple simple du fonctionnement des préfixes personnalisés dans la mise en forme XAML.

Les préfixes personnalisés sont définis dans la balise de l'élément racine et correspondent à des assemblages spécifiques emballés et livrés avec l'application.Cet assembly contient le type NumericUpDown dont l'implémentation, en plus de prendre en charge l'utilisation XAML normale, utilise l'héritage de classe qui permet l'insertion à des points spécifiques dans le modèle de contenu WPF XAML.Ce préfixe déclare une instance de ce contrôle NumericUpDown en tant qu'élément objet afin que l'analyseur XAML puisse trouver l'espace de noms XAML qui contient le type, et donc l'emplacement du support d'assembly qui contient la définition du type.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmln :X="http://schemas.microsoft.com/winfx/2006/xaml" xmln :modifié="clr-namespace:NumericUpDownCustomControl;assembly=CustomLibrary" > <table de pile Nom="racine de mise en page"> <modifié:Prix ​​en hausse et en baisse Nom="Numéro Ctrl1" largeur="100" haut="60"/>...table de pile>Page>

rencontre: pièce ou composant, pour le distinguer d'un composant (Component)

2.1 Balisage XAML, avec code derrière

La plupart des applications WPF contiennent du balisage XAML et du code derrière.

(Video) Visual Basic WPF in Visual Studio 2019 | VB.Net Desktop Application

  • Le balisage XAML est écrit sous la forme d'un fichier .xaml
  • Les langages CLR tels que Microsoft Visual Basic ou C# sont utilisés pour écrire des fichiers code-behind.

Lorsque vous marquez un fichier XAML dans l'application WPF et le modèle de programmation, l'emplacement du fichier de code XAML pour le fichier XAML est spécifié comme suit :

Spécifiez l'espace de noms et la classe comme attribut x:Class de l'élément XAML racine.

Dans les exemples couverts jusqu'à présent, vous avez vu quelques boutons, mais aucun d'entre eux n'a de comportement logique pertinent.L'utilisation principale de l'ajout d'un comportement à un composant d'objet consiste à utiliser un événement de classe de composant existant et à appeler un gestionnaire spécifique lorsque cet événement est déclenché lors de l'exécution.

  • Spécifiez le nom de l'événement à l'aide du nom du gestionnaire au format XAML,
  • Définissez le code qui implémente le gestionnaire code-behind.

Balisage XAML

<fenêtre X:classe="index.Window2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmln :X="http://schemas.microsoft.com/winfx/2006/xaml" titre="fenêtre 2" haut="450" largeur="800"> <table de pile> <bouton Cliquez sur="bouton_clic">attribuerbouton> table de pile>fenêtre>

encoder en retour

privé vide bouton_clic(Butexpéditeur, RoutedEventArgsRoutedEventArgsélectronique){ c'étaitbouton de commande= (bouton)électronique.bron;bouton de commande.perspective=brosse.Rood;}

Notez que le fichier code-behind utilise l'espace de noms CLR ExampleNamespace et déclare ExamplePage en tant que classe partielle dans cet espace de noms.Cela correspond à la valeur de l'attribut x:Class de l'ExampleNamespace. ExamplePage est fourni dans la racine de la mise en page.Le compilateur de balisage WPF génère des classes pour tous les fichiers XAML qu'il compile en dérivant des classes du type d'élément racine.Lorsque vous fournissez un code derrière qui définit les mêmes classes partielles, le code généré est concaténé dans les mêmes espaces de noms et classes que l'application compilée.

Vous pouvez également incorporer le code dans le fichier XAML si vous n'avez pas besoin de créer un fichier code-behind séparé.Cependant, l'intégration de code est une approche moins générale avec de nombreuses limitations.Pour plus d'informations, consultez Code-Behind et XAML dans WPF.

2.2 Routage des événements

Les événements routés sont un type spécial de fonctionnalité d'événement qui est fondamentale pour WPF.Les événements routés permettent à un composant de gérer les événements générés par un autre composant

élément nommé

  • Le contenu suivant est traduit de l'anglais vers le chinois, il est difficile à comprendre, veuillez lire lentement

Par défaut, les éléments d'objet XAML n'ont pas d'identificateurs uniques ni de références d'objet.Au lieu de cela, appelez le constructeur de vue dans le code pour créer des éléments d'objet d'interface utilisateur, puis utilisez le constructeur pour définir des variables afin de pouvoir faire référence à cette instance ultérieurement dans le code.

  • Comment le code sous-jacent trouve-t-il les éléments d'objet XAML ?

XAML définit l'attribut x:name.La valeur de l'attribut x:Name peut être définie sur n'importe quel élément d'objet.

Dans le code derrière, l'identifiant sélectionné est équivalent à une variable d'instance qui pointe vers l'instance construite.À tous égards, les composants nommés agissent comme des instances d'objet (les noms font référence aux instances) et le code derrière peut gérer les interactions d'exécution au sein de l'application en référençant des composants nommés.
Cette connexion entre les instances et les variables est implémentée par le compilateur de balisage WPF XAML, et plus précisément par des fonctions et des modèles tels que InitializeComponent qui ne sont pas traités en détail dans cet article.

Les éléments XAML au niveau du cadre WPF héritent de la propriété Name, qui équivaut à la propriété x:Name définie par XAML.Certaines autres classes fournissent également des équivalents au niveau de la propriété pour x:Name (souvent également défini comme la propriété Name).En général, si vous ne trouvez pas d'attribut Name dans la table des membres de l'élément/type sélectionné, vous pouvez utiliser x:Name à la place.La valeur x:Name fournit un identifiant pour l'élément XAML qui peut être utilisé au moment de l'exécution, via une instance spécifique ou via une méthode utilitaire telle que FindName.

Les étudiants qui ont étudié Android se souviendront de findViewById();
Les étudiants qui ont étudié les applets se souviennent encore de findCompent()
Est-ce vraiment la même chose que la méthode FindName ?

(Video) C# Tutorial 19 WPF & XAML

L'exemple suivant définit le nom sur un élément StackPanel.Les gestionnaires sur les boutons de ce StackPanel sont ensuite référencés dans le StackPanel par leur référence buttonContainer (définie par le nom).

<table de pile Nom="casserole avec bouton"> <bouton Cliquez sur="SupprimerCe_Clic">Cliquez pour supprimer ce boutonbouton>table de pile>
privé vide SupprimerCe_Clic(Butexpéditeur, RoutedEventArgsRoutedEventArgsélectronique){ c'étaitélément= (élément de cadre)électronique.bron; si (casserole avec bouton.enfants.Impliquer(élément))casserole avec bouton.enfants.éliminer(élément);}

Les noms XAML sont forcés d'être uniques dans une plage prévisible.Le balisage principal d'une page représente une série de noms XAML séparés par l'élément principal de la page.

2.3 Fonctionnalités supplémentaires et événements supplémentaires

XAML définit un attribut de langage qui permet de spécifier certaines propriétés ou événements pour n'importe quel élément, même si la propriété ou l'événement n'est pas présent dans la définition de type de l'élément sur lequel la propriété ou l'événement est défini.La version de la propriété de cette fonction est appelée la propriété jointe et la version de l'événement est appelée l'événement joint.

Conceptuellement, les propriétés liées et les événements liés peuvent être considérés comme des membres globaux pouvant être définis sur n'importe quelle instance d'élément/d'objet XAML.Cependant, le composant/classe ou le framework plus large doit prendre en charge le stockage des propriétés de support pour ajouter de la valeur.

Les propriétés jointes en XAML sont généralement utilisées via la syntaxe de propriété.Dans la syntaxe de la propriété, des propriétés supplémentaires peuvent être spécifiées en tant que ownerType.propertyName.

À première vue, cela revient à utiliser un élément de propriété, mais dans ce cas, le type de propriétaire spécifié est toujours différent du type d'élément d'objet sur lequel la propriété associée est définie.ownerType Ce type fournit les méthodes d'accès dont l'éditeur XAML a besoin pour obtenir ou définir la valeur de la propriété liée.

Le scénario de liaison de propriété le plus courant consiste pour les éléments enfants à signaler les valeurs de propriété à leurs éléments parents.

L'exemple suivant montre la propriété DockPanel.Dock attachée.La classe DockPanel définit les plug-ins pour DockPanel.Dock et possède d'autres propriétés.La classe DockPanel contient également la logique pour itérer sur les éléments enfants, en vérifiant spécifiquement que chaque élément a la valeur du paramètre DockPanel.Dock.Si une valeur est trouvée, elle est utilisée pour positionner les éléments enfants lors de la mise en page.L'utilisation de la propriété jointe DockPanel.Dock et de cette fonctionnalité de positionnement est en fait la partie passionnante de la classe DockPanel.

<panneau de quai> <bouton DockPanel.Dock="liens" largeur="100" haut="20">Je suis sur la gauchebouton> <bouton DockPanel.Dock="À droite" largeur="100" haut="20">je suis à droitebouton>panneau de quai>

Dans WPF, la plupart ou toutes les propriétés liées sont également implémentées en tant que propriétés de dépendance.

Les événements joints utilisent une syntaxe similaire à la propriété ownerType.eventName.Comme pour les événements non liés, la valeur d'attribut d'un événement attaché en XAML spécifie le nom d'une méthode de gestionnaire à appeler lorsque l'événement est géré sur le composant.Il n'est pas courant d'utiliser des événements ajoutés dans WPF XAML.

Le XAML WPF de base et son espace de noms XAML sont une collection de types qui correspondent aux objets CLR et aux éléments de balisage XAML.Cependant, toutes les classes ne peuvent pas être affectées à des éléments.Les classes abstraites telles que ButtonBase et certaines classes de base non abstraites sont utilisées pour l'héritage dans le modèle d'objet CLR.Les classes de base (y compris les classes abstraites) sont toujours importantes pour le développement XAML, car chaque élément XAML spécifique hérite des membres de la classe de base dans sa hiérarchie.Généralement, ces membres contiennent des propriétés qui peuvent être définies comme des propriétés d'élément ou des événements qui peuvent être gérés.FrameworkElement est la classe d'interface utilisateur WPF de base au niveau du framework WPF.Lors de la conception d'une interface utilisateur, vous utilisez diverses formes, tables, décorateurs ou classes de contrôle dérivés de FrameworkElement.La classe de base associée, FrameworkContentElement , prend en charge les éléments orientés document adaptés aux représentations de mise en page de flux, à l'aide d'une API qui reflète intentionnellement celle de FrameworkElement.La combinaison des propriétés au niveau de l'élément et du modèle d'objet CLR fournit un ensemble commun de propriétés qui peuvent être définies sur la plupart des éléments XAML spécifiques, quels que soient l'élément XAML spécifique et son type sous-jacent.

XAML est un langage de balisage qui représente directement l'installation et l'exécution d'objets.Par conséquent, les composants créés en XAML peuvent interagir avec les ressources système (telles que l'accès au réseau, les E/S du système de fichiers), tout comme votre code d'application.XAML a également le même accès aux ressources système que les applications hébergées.

Protection d'accès au code (CAS) dans WPF
Contrairement au .NET Framework, WPF pour .NET ne prend pas en charge CAS.

Charger XML à partir du code
XAML peut être utilisé pour définir l'intégralité de l'interface utilisateur, mais il est parfois approprié de définir des parties de l'interface utilisateur en XAML.Cette fonction peut être utilisée pour :

(Video) What is WPF? WPF 4.5 Programming Tutorial

Activer la personnalisation partielle.
Stockez les informations de l'interface utilisateur localement.
Modèles d'objet métier.

  • Date de mise à jour : 01-12-2022 14:33:08

FAQs

What is WPF and XAML? ›

XAML is used extensively in Windows Presentation Foundation (WPF), Silverlight, Workflow Foundation (WF), Windows UI Library (WinUI) and Universal Windows Platform (UWP). In WPF and UWP, XAML is a user interface markup language to define UI elements, data binding, and events. In WF, however, XAML defines workflows.

What are Windows Presentation Foundation applications? ›

Windows Presentation Foundation (WPF) is a UI framework that creates desktop client applications. The WPF development platform supports a broad set of application development features, including an application model, resources, controls, graphics, layout, data binding, documents, and security.

What is the difference between XAML and WPF? ›

WPF uses XAML, which is a language based on XML, to declare the user interface elements. In a simple WPF app, the . xaml file describes the GUI and the code-behind file describes the logic. DirectX is used to draw whatever is described in the .

What is the use of app XAML in WPF? ›

App. xaml is the declarative starting point of your application. Visual Studio will automatically create it for you when you start a new WPF application, including a Code-behind file called App.

Videos

1. WPF 4.5 Programming Content Control Basics
(LiveLessons)
2. Intro to UWP (Universal Windows Platform) Apps in C#
(IAmTimCorey)
3. How to build a custom WPF Window in C#
(David Anderson)
4. Build a WPF MVVM Application - START TO FINISH TUTORIAL
(SingletonSean)
5. Learn C# with CSharpFritz - Get Started with WPF
(dotnet)
6. WPF 4.5 Programming: Basic Layout
(LiveLessons)

References

Top Articles
Latest Posts
Article information

Author: Jamar Nader

Last Updated: 10/06/2023

Views: 5255

Rating: 4.4 / 5 (55 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.