Укажите размеры в процентах вместо их жесткого кодирования.
Простой способ сделать это - создать конвертер, который принимает родительский размер в качестве привязки и имеет значение процента в качестве параметра.
Например, конвертер будет выглядеть примерно так:
public class PercentToDoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double size = (double)value;
double percent = (parameter == null ? 0.00 : System.Convert.ToDouble(parameter));
return percent * size;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
И XAML сказал бы что-то вроде этого:
<UserControl x:Name=RootControl>
<Button Height="{Binding ElementName=RootControl, Path=Height,
Converter={StaticResource MyPercentToDoubleConverter}, ConverterParameter=.2}" />
</UserControl>