<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Path Canvas.Left="150" Canvas.Top="150" Stroke="Black"
Data="M 0 -100
C -55 -100, -100 -55, -100 0
S -55 100, 0 100
S 400 -55, 400 0
S 200 50, 150 0
S 55 -100, 0 -100" />
</Canvas>
Large ArcSegments
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Canvas>
<Ellipse Fill="Cyan" Stroke="Black" Width="140" Height="60" />
<Path Fill="Cyan" Stroke="Black" Canvas.Left="180">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint="240,1" IsClosed="True">
<ArcSegment Point="290,51" Size="70,30"
SweepDirection="Counterclockwise" IsLargeArc="True" />
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>
</Page>
Clear Controls
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ElemCollMethods.Pane1"
WindowTitle="UI Element Collection Methods Sample">
<StackPanel>
<TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>
<TabControl>
<TabItem MouseLeftButtonUp="ClearButtons">
<TabItem.Header>Clear Controls</TabItem.Header>
</TabItem>
</TabControl>
<StackPanel Name="sp1"></StackPanel>
</StackPanel>
</Page>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;
namespace ElemCollMethods
{
public partial class Pane1 : Page
{
System.Windows.Controls.Button btn, btn1, btn2, btn3;
void ClearButtons(object sender, MouseButtonEventArgs e)
{
sp1.Children.Clear();
btn = new Button();
btn.Content = "Click to clear";
sp1.Children.Add(btn);
btn.Click += (ClearControls);
btn1 = new Button();
btn1.Content = "Click to clear";
sp1.Children.Add(btn1);
btn1.Click += (ClearControls);
btn2 = new Button();
btn2.Content = "Click to clear";
sp1.Children.Add(btn2);
btn2.Click += (ClearControls);
btn3 = new Button();
btn3.Content = "Click to clear";
sp1.Children.Add(btn3);
btn3.Click += (ClearControls);
}
void ClearControls(object sender, RoutedEventArgs e)
{
sp1.Children.Clear();
}
}
}
Contains Element?
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ElemCollMethods.Pane1"
WindowTitle="UI Element Collection Methods Sample">
<StackPanel>
<TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>
<TabControl>
<TabItem MouseLeftButtonUp="ContainsElement">
<TabItem.Header>Contains Element?</TabItem.Header>
</TabItem>
</TabControl>
<StackPanel Name="sp1"></StackPanel>
</StackPanel>
</Page>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;
namespace ElemCollMethods
{
public partial class Pane1 : Page
{
System.Windows.Controls.Button btn, btn1, btn2, btn3;
void ContainsElement(object sender, RoutedEventArgs e)
{
sp1.Children.Clear();
btn = new Button();
btn.Content = "Click to clear";
sp1.Children.Add(btn);
btn.Click += (ClearControls);
btn1 = new Button();
btn1.Content = "Click to clear";
sp1.Children.Add(btn1);
btn1.Click += (ClearControls);
btn2 = new Button();
btn2.Content = "Click to clear";
sp1.Children.Add(btn2);
btn2.Click += (ClearControls);
btn3 = new Button();
btn3.Content = "Click to clear";
sp1.Children.Add(btn3);
btn3.Click += (ClearControls);
TextBlock txt1 = new TextBlock();
sp1.Children.Add(txt1);
txt1.Text = "This StackPanel contains UIElement btn1: " + sp1.Children.Contains(btn1).ToString();
}
void ClearControls(object sender, RoutedEventArgs e)
{
sp1.Children.Clear();
}
}
}
UIElement Count
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ElemCollMethods.Pane1"
WindowTitle="UI Element Collection Methods Sample">
<StackPanel>
<TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>
<TabControl>
<TabItem MouseLeftButtonUp="GetCount">
<TabItem.Header>UIElement Count</TabItem.Header>
</TabItem>
</TabControl>
<StackPanel Name="sp1"></StackPanel>
</StackPanel>
</Page>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;
namespace ElemCollMethods
{
public partial class Pane1 : Page
{
System.Windows.Controls.Button btn, btn1, btn2, btn3;
void GetCount(object sender, RoutedEventArgs e)
{
TextBlock txt3 = new TextBlock();
sp1.Children.Add(txt3);
txt3.Text = "UIElement Count is equal to " + sp1.Children.Count.ToString();
}
}
}
Get Item At Index Position [0]
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ElemCollMethods.Pane1"
WindowTitle="UI Element Collection Methods Sample">
<StackPanel>
<TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>
<TabControl>
<TabItem MouseLeftButtonUp="GetItem">
<TabItem.Header>Get Item At Index Position [0]</TabItem.Header>
</TabItem>
</TabControl>
<StackPanel Name="sp1"></StackPanel>
</StackPanel>
</Page>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;
namespace ElemCollMethods
{
public partial class Pane1 : Page
{
System.Windows.Controls.Button btn, btn1, btn2, btn3;
void GetItem(object sender, RoutedEventArgs e)
{
TextBlock txt2 = new TextBlock();
sp1.Children.Add(txt2);
txt2.Text = "UIElement at Index position [0] is " + sp1.Children[0].ToString();
}
}
}
Panel is setting the data context to the scrollbar object
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:myConverters ="clr-namespace:WpfApplication1"
Title="Simple Data Binding" Height="334" Width="288"
WindowStartupLocation="CenterScreen"
>
<Window.Resources>
<myConverters:MyDoubleConverter x:Key="DoubleConverter"/>
<myConverters:MyColorConverter x:Key="ColorConverter"/>
</Window.Resources>
<StackPanel Width="250" DataContext = "{Binding ElementName=mySB}">
<ScrollBar Orientation="Horizontal" Name="mySB" Maximum = "100" LargeChange="1" SmallChange="1"/>
<TextBox Name="txtThumbValue" Text = "{Binding Path=Value, Converter={StaticResource DoubleConverter}}"/>
<Button Content="Click" FontSize = "{Binding Path=Value}" Background= "{Binding Path=Value, Converter={StaticResource ColorConverter}}"/>
</StackPanel>
</Window>
//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections.Generic;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
class MyColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
double d = (double)value;
byte v = (byte)d;
Color color = new Color();
color.A = 255;
color.G = (byte) (155 + v);
return new SolidColorBrush(color);
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value;
}
}
class MyDoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double v = (double)value;
return (int)v;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}
}

