You could try creating a Converter
which returns the value multiplied by whatever your DLU is
For example, I created a MathConverter
(code is here) which would let you specify something like
<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}" />
To make it easier to write and read, you can create a class that inherits from Binding and setup a default binding properties so all you have to do is
<Button Height="{local:MyVDluBinding Source=14}"
Width="{local:MyHDluBinding Source=50}" />
I've never tried overwriting a binding with defaults for Converter
and ConverterParameter
, but I have overwritten a binding for validation purposes so I believe it's possible.
The ValidationBinding
I created could be used like Text="{local:ValidationBinding MyProperty}"
and automatically set ValidatesOnDataError=True, ValidatesOnException=True, UpdateSourceTarget=PropertyChanged
in the bindings.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…