You can’t start the design process unless you understand how the application will be used and who its intended audience is. Even applications that surface similar feature sets might need to provide significantly different user experiences. An application designed to store medical information might have the same data points and functions but would likely have a different persona if it was designed for the ordinary consumer as opposed to a physician or registered nurse.
Use cases and actual usability labs are both great tools for understanding user expectations, and they provide great data points for preserving that function versus simplicity of design balance.
Location and culture figure into the equation as well. The typical form application used in the United States caters to this culture’s expectations by anticipating left-to-right, top-to-bottom reading habits. In this environment, the most important elements of the UI are typically placed in the most prominent position: top and left in the form. Other cultures require this strategy to change based on right-to-left and even bottom-to-top reading traits.
Most controls in Visual Studio directly support right-to-left languages through a RightToLeft
property. By setting this property to an appropriate RightToLeft
enum value, you can indicate whether the control’s text should appear left to right or right to left or should be based on the setting carried on the parent control. Even the Form
class supports this property.
Beyond the RightToLeft
property, certain controls expose a RightToLeftLayout
property. Setting this Boolean property affects the overall layout within the control. As an example, setting RightToLeftLayout
to True
for a Form
instance causes the form to mirror its content.
Tip
Search for “Best Practices for Developing World-Ready Applications” in the Microsoft Developer Network (MSDN) for more detailed information on how to design an application for an international audience.
In addition, simple things such as the space allocated for a given control are affected by language targets. A string presented in U.S. English might require drastically more space when translated into Farsi. Again, many controls support properties designed to overcome this design issue; setting the AutoSize
property on a control to True
automatically extends the client area of the control based on its contained text.