public static SettingsFontDefinition FromFontDefinition(FontDefinition font)
 {
     return new SettingsFontDefinition
     {
         FontFamily = font.FontFamily.ToString(),
         FontStyle = font.FontStyle.ToString(),
         FontWeight = font.FontWeight.ToString(),
         FontStretch =  font.FontStretch.ToString(),
         FontSize = font.FontSize
     };
 }
        public static FontDefinition FromDependencyObject(DependencyObject control)
        {
            var fontDefinition = new FontDefinition();

            foreach (var property in _properties
                .Where(property => property != null))
            {
                fontDefinition.SetValue(property, control.GetValue(property));
            }

            return fontDefinition;
        }
        private void ShowFontDialog(TextBox textBox)
        {
            var fontChooser = new FontChooser
            {
                Owner = this,
                PreviewSampleText = textBox.SelectedText
            };

            fontChooser.SetPropertiesFromObject(textBox);

            var result = fontChooser.ShowDialog();

            if (result == null || !result.Value)
            {
                return;
            }

            var fontDefinition = new FontDefinition();

            fontChooser.ApplyPropertiesToObject(textBox);
            fontChooser.ApplyPropertiesToObject(fontDefinition);

            textBox.Text = fontDefinition.ToString();
        }