Вы можете попытаться создать Converter
, который возвращает значение, умноженное на то, что ваш DLU равен
Например, я создал MathConverter
(код здесь ), который позволил бы вам указать что-то вроде
<Button Height="{Binding Source={x:Static local:Settings.VerticalDLU,
Converter={StaticResource MathConverter},
ConverterParameter=@VALUE*14}"
Width="{Binding Source={x:Static local:Settings.HorizontalDLU,
Converter={StaticResource MathConverter},
ConverterParameter=@VALUE*50}" />
Чтобы было проще писать и читать, вы можете создать класс, который наследует от Binding, и настроить свойства привязки по умолчанию, поэтому все, что вам нужно сделать, это
<Button Height="{local:MyVDluBinding Source=14}"
Width="{local:MyHDluBinding Source=50}" />
Я никогда не пытался перезаписать привязку значениями по умолчанию для Converter
и ConverterParameter
, но я перезаписал привязку для целей проверки, поэтому я считаю, что это возможно.
Созданный мной ValidationBinding
может использоваться как Text="{local:ValidationBinding MyProperty}"
и автоматически устанавливать ValidatesOnDataError=True, ValidatesOnException=True, UpdateSourceTarget=PropertyChanged
в привязках.