Маркировка WPF адаптирует FontSize к, он - Ширина и Высота

Я должен разработать a Label управление в WPF, на.NET 3.5 и VisualStudio 2010, в который FontSize автоматически заставит текст заполнить управляющее поле.

Я не знаю, должен ли я создать a CustomControl наследование от Label или если я должен создать a UserControl который содержит a Label управление.

Я видел пример здесь с помощью a ValueConverter, но я не понимаю его поведения, здесь: измените размер шрифта динамично.

Кто-либо может дать мне ключ к разгадке это?

Обновление:

Я нашел решение с помощью DoubleConverter от примера я отправил прежде:

Решение использует a ValueConverter, который я извлек из примера, но добавил NumerFormat IFormatProvider для корректного парсинга "0.1" значение, я нашел это в Decimal d1 = Десятичное число. Синтаксический анализ ("0.1");//= 1?!?:

 [ValueConversion(typeof(object), typeof(double))]
 public class DoubleConverter : IValueConverter
 {
  public object Convert(object value, Type targetType,
   object parameter, CultureInfo culture)
  {
   double dblValue = (double)value;
   double scale = Double.Parse(((string)parameter), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
   return dblValue * scale;
  }

  public object ConvertBack(object value, Type targetType,
   object parameter, CultureInfo culture)
  {
   throw new NotImplementedException();
  }
 }

Затем необходимо инстанцировать в XAML DoubleConverter, и укажите привязку в FonSize Свойство:


 
 
 
 
 

Важный момент то, что значение для ConverterParameter зависит абсолютно от присвоенного шрифта. Каждому шрифту, возможно, понадобится различное значение, и необходимо "играть вокруг", чтобы заставить правильное значение соответствовать точно.

9
задан JoanComasFdz 29 April 2014 в 10:34
поделиться