You could use some javascript bits here. And grey out the username field if that's specified in a query string in the URL. But then the user could change the URL. So that's really to avoid user mistake, and has no security value.
If you want to try this out, you can refer to the following documenation on how to modify the OnLoad.js JavaScript of the ADFS pages:
https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/operations/advanced-customization-of-ad-fs-sign-in-pages
Maybe something like this:
var checkField = document.getElementById('userNameInput') ;
if ( checkField ) {
if( window.location.href.indexOf('login_hint=') != -1 ) {
checkField.readOnly = true;
}
}
I did not test this, and you should probably do some additional tests like in case the login_hint is empty etc...