No, there is no reliable way to do this.
Adding constructs that the constructor does not support, but which do not change the semantics, may be one of the possibilities
WHERE (1 = (SELECT ROW_NUMBER() OVER (ORDER BY @@SPID)))
However, this does not work. When you open a view, you see a message
SQL text cannot be represented in the grid area and chart pane.
and these panels are empty, but the SQL panel is still displayed and contains reformatted SQL for editing. Also, the foregoing may also adversely affect the implementation plan.
Another approach might be to create a DDL trigger.
The default rows that I see for the designer and query window are "Microsoft SQL Server Management Studio" and "Microsoft SQL Server Management Studio - Query" so you can use it.
CREATE TRIGGER NoAlterViewFromSSMS ON DATABASE FOR ALTER_VIEW AS IF APP_NAME() = 'Microsoft SQL Server Management Studio' BEGIN RAISERROR ('Please don''t use the designer to ALTER views',16, 1) ROLLBACK END GO
But this does not work until they try to save, and your employees can be very annoyed. The AppName used by the management studio is customizable anyway, so this can also be circumvented.
The only other option I can think of is to look for the Connect site for errors that prevent the designer from opening (I vaguely remember one with the syntax of nested comments), but even if you find it, you risk that they will be fixed in a future package updates.