2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

  • Home
  • About
  • Index
Posts Comments
  • Controls
  • Layout
  • Events
  • Basics
  • Blend
  • Graphics
  • XAML
  • Miscellaneous
  • Dependency Properties
  • Visual Studio

#164 – Overriding Metadata for an Inherited Dependency Property

December 23, 2010 3 Comments

When deriving a new child class, you inherit the parent’s dependency properties.  You might also want to change the behavior of one or more of the dependency properties.  You can do this to some extent by overriding the metadata for a dependency property.

Overriding the metadata in the child class doesn’t change the behavior of the dependency property in the parent class.

In the example below, we create a new class and override metadata for several properties, changing the default values.

    public class ThermometerSlider : Slider
    {
        static ThermometerSlider()
        {
            // Defaults for standard Slider: Min = 0, Max = 10, Value = 0
            // Defaults for ThermometerSlider: Min = -40, Max = 120, Value = 70

            // Change default Minimum to -40.0
            MinimumProperty.OverrideMetadata(typeof(ThermometerSlider), new FrameworkPropertyMetadata(-40.0));

            // Change default Maximum to 120
            MaximumProperty.OverrideMetadata(typeof(ThermometerSlider), new FrameworkPropertyMetadata(120.0));

            // Change default Value to 70
            ValueProperty.OverrideMetadata(typeof(ThermometerSlider), new FrameworkPropertyMetadata(70.0));
        }
    }

The metadata type must match the type in the original property (e.g. FrameworkPropertyMetadata, UIPropertyMetadata, or PropertyMetadata).

Filed under Dependency Properties Tagged with Dependency Properties, OverrideMetadata, WPF

Sean Sexton

Recent Posts

  • #1,219 – Expanding All Nodes in a TreeView by Default
  • #1,218 – Stretching Items in TreeView across Entire Control
  • #1,217 – Using Multiple HierarchicalDataTemplates in a TreeView
  • #1,216 – Creating a Custom ItemTemplate in a TreeView
  • #1,215 – Binding a TreeView to a Hierarchical Data Source

Blogroll

  • 2,000 Things You Should Know About C#
  • Britannica Geek
  • Sean on Twitter
  • Sean's Stuff

Calendar

December 2010
S M T W T F S
 1234
567891011
12131415161718
19202122232425
262728293031  
« Nov   Jan »

Top Posts

  • #210 - Specifying Colors in XAML As RGB Values
  • #1,215 - Binding a TreeView to a Hierarchical Data Source
  • #220 - Using the Predefined Colors
  • #856 - Placing RadioButtons in a GroupBox
  • #547 - Specifying Colors by Name in Blend
  • #556 - Clipping to a Border Using an Opacity Mask
  • #256 - Use a FixedDocument to Display Content at Fixed Locations
  • #1,204 - Using a DataTrigger to Change Content in a ContentPresenter
  • #702 - Dragging an Image within a WPF Application
  • #1,219 - Expanding All Nodes in a TreeView by Default

Tags

Application Background Basics Binding Blend Border Brush Button Calendar Canvas CheckBox Color Colors ComboBox Commands ContentControl Controls Cursor Data Binding Dependency Properties Dependency property DockPanel Drag-and-Drop Events Expander FlowDocument Focus Fonts FrameworkElement Gradient Graphics Grid GridSplitter GroupBox HorizontalAlignment Image InkCanvas Input ItemsControl Keyboard Keyboard Focus KeyDown KeyUp Layout LinearGradientBrush ListBox Localization Manipulation Margin Measure Miscellaneous Mouse Panel Popup Radial Gradient Resources Routed Events ScrollViewer Shape Slider StackPanel TabControl Text TextBlock TextBox Tooltip Touch Input Transforms UIElement Visual Studio Window Windows WPF WrapPanel XAML

Blog Stats

  • 4,709,258 hits

Blog at WordPress.com.

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy