Diskuze: WPF Nastaveni Fontfamily ve Stylu v Dictionary za běhu programu

C# .NET .NET (C# a Visual Basic) WPF Nastaveni Fontfamily ve Stylu v Dictionary za běhu programu American English version English version

Avatar
jan.pichl
Člen
Avatar
jan.pichl:

Ahoj,
tvořím program u kterého bych chtěl aby šel měnit vzhled. S obrázky jsem to udělal tak, že je mám nahrané ve složce s programem. a při startu programu si je načtu. Když vyměním obrázek kolečka za obrázek trojúhelníku tak se to projeví při restartu aplikace. To problém není. Co však problém je tak jsou fonty, nenašel jsem Xaml řešení jak načíst font pokud znám cestu k souboru s fontem, vždy potřebuji vědět přímo název fontu.

Umím to zjistit v c# kódu takto:

var AppDirectory = System.AppDomain.CurrentDomain.BaseDirectory; // adresar programu

            var FontDir = AppDirectory + @"Fonts\";

            string[] Fontfiles = Directory.GetFiles(FontDir, "*.ttf", SearchOption.TopDirectoryOnly); // soubory ttf

            List<FileFont> fontList = new List<FileFont>(); // list s fontama

            foreach (var x in Fontfiles)
            {
                foreach (FontFamily fontFamily in Fonts.GetFontFamilies(x))
                {
                    string fontName = fontFamily.ToString().Split('#')[fontFamily.ToString().Split('#').Count() - 1];
                    string fontSource = fontFamily.Source;
                    string fontPatch = x;
                    string file = new FileInfo(x).Name;

                    fontList.Add(new FileFont { _FontName = fontName, _FontSource = fontSource, _FontPatch = fontPatch, _FontFamily = fontFamily, _FontFile = file });
                }

            }
public class FileFont
       {
           public string _FontName { get; set; }
           public string _FontSource { get; set; }
           public string _FontPatch { get; set; }
           public string _FontFile { get; set; }

           public FontFamily _FontFamily { get; set; }

       }
var test = (from cust in fontList
                        where   cust._FontFile.ToLower().Equals("master.ttf")
                        select cust).FirstOrDefault();

if (test != null)
            {
                label4.FontFamily = test._FontFamily;
            }

Jenomže pak musím nastavovat ručně FontFamily pro každou kontrolku extra a přitom by stačilo to nějak dostat do ResourceDictionary

<FontFamily x:Key="MasterFont"></FontFamily>

A já nemohu přijít na to jak to udělat.

Předem děkuji za případné rady.

 
Odpovědět 8.12.2015 10:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.