What is the use of a ControlTemplate ?
It allows you to specify the visual structure of a class. The main advantage is we can override the default ControlTemplate defined in the control and replace it with new ControlTemplates, to reconstruct the visual structure of the class. The following code illustrates the ControlTemplate of a button. [XAML] <Style TargetType=’Button’> <!–Set to true to not get any properties from the themes.–> <Setter Property=’OverridesDefaultStyle’ Value=’True’/> <Setter Property=’Template’> <Setter.Value> <ControlTemplate TargetType=’Button’> <Grid> <Ellipse Fill='{TemplateBinding Background}’/> <ContentPresenter HorizontalAlignment=’Center’ VerticalAlignment=’Center’/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
What are the different models for Control authoring ?
1. Deriving from UserControl class. Consider this when, Your control consists of existing components. You don’t need to support complex customization. 2. Deriving from Control, You would like the appearance of the control through ControlTemplate. You would like the control to support different themes. 3. Deriving from FrameworkElement, You want to have fine-grained control over the appearance of your control beyond what is generally provided. You want to define the appearance of your control by defining your own render logic.
Where can adorners be used ?
Adding functional handles to a UIElement that enables a user to manipulate the element in some way (resize, rotate, reposition etc.). Provide visual feedback to indicate various states or in response to various events. Overlay visual decorations on a UIElement. Visually mask or override part or all of UIElement.
What is an adorner ?
Adorners are a special type of FrameworkElement used to provide visual cues. It can be used to add functional handle to elements or provide state information about the control. There is a class that plays an important role in rendering called ‘AdornerDecorator’. This class determines the placement of the ‘AdornerLayer’ in the visual tree.
How do I make a TextBox use all upper-case (or lower-case) characters ?
Use the CharacterCasing property of the TextBox. [C#] textBox1.CharacterCasing = CharacterCasing.Upper; textBox2.CharacterCasing = CharacterCasing.Lower;