WPF C# Tutorial

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:WpfApplication1="clr-namespace:WpfApplication1;assembly="
   Title="WPF" Height="300" Width="300" >
    
        
            
            
        
    

    
        
        
            
                
                                                        ScaleY="{Binding Path=Value, ElementName=zoomSlider}"/>
                

                
                
                
            
        
    


//File:Window.xaml.cs
using System.Windows;
using System;
using System.Windows;
using System.Windows.Controls;
namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
    public class ZoomableCanvasControl : Canvas
    {
        static ZoomableCanvasControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ZoomableCanvasControl),new FrameworkPropertyMetadata(typeof(ZoomableCanvasControl)));
        }
        protected override Size MeasureOverride(Size constraint)
        {
            double bottomMost = 0d;
            double rightMost = 0d;
            foreach(object obj in Children)
            {
                FrameworkElement child = obj as FrameworkElement;
                if(child != null)
                {
                    child.Measure(constraint);
                    bottomMost = Math.Max(bottomMost,GetTop(child) +child.DesiredSize.Height);
                    rightMost = Math.Max(rightMost,GetLeft(child) +child.DesiredSize.Width);
                }
            }
            return new Size(rightMost, bottomMost);
        }
    }
}