<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:src="clr-namespace:MyNameSpace.CustomElementBinding" Title="Custom Element Binding Demo"> <StackPanel> <ScrollBar Name="scroll" Orientation="Horizontal" Margin="24" Maximum="100" LargeChange="10" SmallChange="1" Value="{Binding ElementName=simple, Path=Number,Mode=TwoWay}" /> <src:SimpleElement Number="{Binding ElementName=scroll,Path=Value,Mode=OneWay}"/> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Globalization; using System.Windows; using System.Windows.Media; namespace MyNameSpace.CustomElementBinding { class SimpleElement : FrameworkElement { public static DependencyProperty NumberProperty; static SimpleElement() { NumberProperty = DependencyProperty.Register("Number", typeof(double),typeof(SimpleElement), new FrameworkPropertyMetadata(0.0,FrameworkPropertyMetadataOptions.AffectsRender)); } public double Number { set { SetValue(NumberProperty, value); } get { return (double)GetValue(NumberProperty); } } protected override Size MeasureOverride(Size sizeAvailable) { return new Size(200, 250); } protected override void OnRender(DrawingContext dc) { dc.DrawText(new FormattedText(Number.ToString(), CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface("Times New Roman"), 12, SystemColors.WindowTextBrush),new Point(0, 0)); } } }