Salut je cherche a ajouter une police dans mon appli Windows Forms de manière a ce quelle soit embarqué avec l'application, je l'ai ajouté dans les ressources comment faire pour l'utiliser ?
Salut je cherche a ajouter une police dans mon appli Windows Forms de manière a ce quelle soit embarqué avec l'application, je l'ai ajouté dans les ressources comment faire pour l'utiliser ?
Bonjour,
ADD AND USE FONT C# :
http://www.codeproject.com/Articles/...-Installing-It
USING FONT FROM RESOURCES C# :
http://www.codeproject.com/Articles/...t-To-Resources
A+
Salut,
Merci pour les liens mais c'est pour du C# et moi j'utilise VB je pense que ça doit pas être très différent mais je n'arrive pas a mettre ca en place j'ai essayé ça : http://zerosandtheone.com/blogs/vb/a...plication.aspx et çà ne fonctionne pas non plus
n'aurais tu pas un exemple qui fonctionne merci
Bonjour,
En fouillant sur le net j'ai réusi à faire ceci
Fonctionne sous vista.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private fntCollect As System.Drawing.Text.PrivateFontCollection = New System.Drawing.Text.PrivateFontCollection() Private Sub FontToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles FontToolStripMenuItem.Click 'Label3.Font = GetFont() LoadFontFromResource() Label3.Font = New Font(fntCollect.Families(0), 12) End Sub ' depuis une ressource (ressource nommée times - pour times new roman) Private Sub LoadFontFromResource() Try Dim fontMemPointer As IntPtr = Marshal.AllocCoTaskMem(My.Resources.times.Length) Marshal.Copy(My.Resources.times, 0, fontMemPointer, My.Resources.times.Length) fntCollect.AddMemoryFont(fontMemPointer, My.Resources.times.Length) Marshal.FreeCoTaskMem(fontMemPointer) Catch ex As Exception End Try End Sub ' depuis un fichier Function GetFont() As Font Dim privateFonts As System.Drawing.Text.PrivateFontCollection = New System.Drawing.Text.PrivateFontCollection() privateFonts.AddFontFile("C:\Windows\Fonts\Times.ttf") Return New Font(privateFonts.Families(0), 12) End Function
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Merci pour ta réponse mais ça ne fonctionne pas seul la méthode getfont() fonctionne mais ça na pas de grand intérêt puis-quelle ce sert d'une police disponible sur la machine.
Je te montre mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged ' Dim cac As String = toto.AbsolutePath & "./resources/#GoodDog" LoadFontFromResource() 'Me.Label1.Font = New System.Drawing.Font(cac, 180.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Label1.Font = New Font(fntCollect.Families(0), 120) End Sub Private fntCollect As System.Drawing.Text.PrivateFontCollection = New System.Drawing.Text.PrivateFontCollection() ' depuis une ressource (ressource nommée times - pour times new roman) Private Sub LoadFontFromResource() Try Dim fontMemPointer As IntPtr = Marshal.AllocCoTaskMem(My.Resources.ImpactLabelReversed.Length) Marshal.Copy(My.Resources.ImpactLabelReversed, 0, fontMemPointer, My.Resources.ImpactLabelReversed.Length) fntCollect.AddMemoryFont(fontMemPointer, My.Resources.ImpactLabelReversed.Length) Marshal.FreeCoTaskMem(fontMemPointer) Catch ex As Exception End Try End Sub ' depuis un fichier Function GetFont() As System.Drawing.Font Dim privateFonts As System.Drawing.Text.PrivateFontCollection = New System.Drawing.Text.PrivateFontCollection() privateFonts.AddFontFile("C:\Users\utilisateur\Documents\Visual Studio 2013\Projects\Font\Font\Resources\ImpactLabelReversed.ttf") Return New System.Drawing.Font(privateFonts.Families(0), 12) End Function
Force est de constaté que bon nombre de débutants foncent tête baissée dans un projet sans même avoir pris le tps d apprendre les spécificité du langage dotnet !
Exemples en c# peut etre mais il existe des convertisseurs dotnet et notamment c#<-->vbnet
C'est de l'IL le dotnet et il possède cette faculté de conversion.
A+
L'intérêt est que tu demandais la traduction des liens qui avais été présentés, ou un équivalent. J'ai donc présenté les 2.
Ensuite je ne savais pas quelle police tu utilises, j'ai donc fait un exemple avec une police existante afin de pouvoir tester. (tu peux aussi livrer ta police avec ton appli)
Ces exemples sont des pistes de travail.
Sous quel environnement developpes tu ?
Et qu'est ce qui ne fonctionne pas ? (Je ne vois pas ta machine, je ne peux donc pas deviner.)
Comment as-tu chargé ta police dans les ressources du projet ? (j'ai utilisé ajouter un fichier et choisi times.ttf pour l'exemple qui est la polise times new roman pour test
Ou cela bloque-t-il ?
Quel est le message d'erreur ?
...
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
@rv26t j'utilise Windows 7 et 8, et les polices qui s'affiche sont celle par défaut et non celle que j'ai choisi, j'ai effectué la même démarche que la tienne et j'ai chargé les ressources en tant que fichier, il n'y a pas de message d'erreur le police ne s'affiche tous simplement pas c'est la police par défaut qui s'affiche.
@wallace1 soit gentil et ne te sens pas obligé de répondre merci.
Moi je suis pas du genre gentil, quand on demande de l'aide il faut savoir accepter et reconnaître qu'on ne comprends pas ce que les autres veulent t'expliquer. Il existe d'autres façons d'expliquer les choses et c'est ce que j'ai tenté de faire à 2 reprises ! Pour ma part l''effort je l'ai fais.
Cependant tu pourrais au moins répondre correctement à rv26t car les réponses du genre ; ça marche pas, il n'y a pas de message d'erreur, ça ne s'affiche tous simplement pas,..etc.... : dénote un manque certains d'investissement de ta part !
Si tu n'accepte pas l'aide qu'on t'apporte alors je pense que tu ne devrais pas traîner ici et retourner dans tes bouquins pour apprendre les bases !
A bon entendeur.
Il fait beau, c'est l'été, les oiseaux chantent,
Effectivement dans mes recherches j'avais vu que la méthode était pour vista, pas au dessus, c'est pour cela que je le précisais.
Comme il y a un try catch, as-tu mis un messagebox.show(ex.message)sinon l'erreur est trappé mais rien n'est indiqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Catch ex As Exception MessageBox.Show(ex.Message) End Try
Après il faut faire des recherches avec google, indiquer les termes en anglais et mettre vb.net pour essayer de cibler. Puis faire des tests avec ce que l'on trouve. (comme je n'ai pas ton environnement de travail, difficile de tester)
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Bonjour,
Non il n'y a pas d'erreur même en essayant d'afficher le message dans le catch.
Je fait toujours des recherches Google avant de venir poser mes questions sur les forums.
Je met des capture d'écran :
on peut voir pour le label1 la police ne change pas de celle par défaut (le label2 utilise la police par défaut) sauf la taille.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager