WPF Units and Code-Behind

Недавно я обнаружил, что WPF поддерживает различные единицы измерения в XAML. Помимо стандартных DIP, есть поддержка пикселей, дюймов и сантиметров (насколько я знаю). Это позволяет дизайнеру писать XAML, например, так:


    

Однако вы не можете привязать эти значения. Представьте, что у нас есть ViewModel со свойством Dimension, которое является строкой, например, "7cm". Это не сработает:


Возникнет исключение FormatException. Аналогично, при создании FrameworkElement в code-behind происходит следующее:

Canvas1.Children.Add(new Button() { Width = "3cm", Content = "Test"});

Compilation fails because exception is thrown in constructor/wherever you try to create the control.

Интересно:

  • Можно ли использовать натуральные единицы (в моем случае метрические - сантиметры) в code-behind?
  • Как?
  • Есть ли полный список единиц, поддерживаемых WPF/XAML?

EDIT:

Вот ссылка из комментария ниже, которая решает этот вопрос:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.width.aspx

14
задан Aaron Summernite 29 February 2012 в 19:52
поделиться