Click here to Skip to main content
12,997,943 members (60,447 online)

Silverlight / WPF

 
GeneralRe: WPF - Sync Combox Pin
SledgeHammer0114-Jan-13 9:34
memberSledgeHammer0114-Jan-13 9:34 
GeneralRe: WPF - Sync Combox Pin
Kevin Marois23-Jan-13 17:41
memberKevin Marois23-Jan-13 17:41 
QuestionStyle From Resource File Not Being Applied Pin
Kevin Marois12-Jan-13 10:20
memberKevin Marois12-Jan-13 10:20 
AnswerRe: Style From Resource File Not Being Applied Pin
Richard MacCutchan12-Jan-13 23:44
mvpRichard MacCutchan12-Jan-13 23:44 
GeneralRe: Style From Resource File Not Being Applied Pin
Mycroft Holmes13-Jan-13 0:45
memberMycroft Holmes13-Jan-13 0:45 
GeneralRe: Style From Resource File Not Being Applied Pin
Richard MacCutchan13-Jan-13 1:24
mvpRichard MacCutchan13-Jan-13 1:24 
GeneralRe: Style From Resource File Not Being Applied Pin
Kevin Marois13-Jan-13 10:58
memberKevin Marois13-Jan-13 10:58 
QuestionRoutedEvent vs AttachedEvent - Syntax difference only? Confused Pin
devvvy9-Jan-13 20:05
memberdevvvy9-Jan-13 20:05 
Following example I managed to get fire both a RoutedEvent and an AttachedEvent from "GrandChild" and have them handled in "MainWindow" two levels up - but I am now confused what's difference between the two? Except how they are declared in "GrandChild". I want to add that both use "RegisterRoutedEvent" but RoutedEvent has a CLR wrapper

References:
http://weblogs.asp.net/vblasberg/archive/2010/03/30/wpf-routed-events-bubbling-several-layers-up.aspx
http://chuckhays.net/blog/2010/05/21/very-simple-routed-event-example/comment-page-1/#comment-1021
http://en.csharp-online.net/WPF_Concepts%E2%80%94Routed_Events_in_Action

MainWindow - Top Level
<Window x:Class="RoutedEventDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:RoutedEventDemo"

Title="MainWindow" Height="350" Width="525" Background="DimGray"

local:GrandChild.GrandChildRoutedEvClick="GrandChild_GrandChildRoutedEvClick"
>
<StackPanel local:GrandChild.GrandChildAttachedEvClick="GrandChildAttachedEvClickHandler">
<Label>Main Window</Label>
<local:middlechild>



public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void GrandChild_GrandChildRoutedEvClick(object sender, RoutedEventArgs e)
{
string Message = "MainWindow - GrandChildRoutedEvClickEvent handler - Source=" + Convert.ToString(e.Source);
MessageBox.Show(Message);
e.Handled = false;
return;
}

private void GrandChildAttachedEvClickHandler(object sender, RoutedEventArgs e)
{
string Message = "MainWindow - GrandChildAttachedEvClickHandler - Source=" + Convert.ToString(e.Source);
MessageBox.Show(Message);
return;
}
}

MiddleChild - 2nd Level
<UserControl x:Class="RoutedEventDemo.MiddleChild"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlnsBig Grin | :-D ="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:RoutedEventDemo"
mc:Ignorable="d"
Background="DarkGray"

d:DesignHeight="300" d:DesignWidth="300">
<stackpanel>
<Label>MiddleChild</Label>
<local:GrandChild x:Name="Junior" VerticalAlignment="Stretch" GrandChildRoutedEvClick="GrandChild_GrandChildRoutedEvClick">



public partial class MiddleChild : UserControl
{
public MiddleChild()
{
InitializeComponent();
}

private void GrandChild_GrandChildRoutedEvClick(object sender, RoutedEventArgs e)
{
string Message = "MiddleChild - GrandChildRoutedEvClickEvent handler - Source=" + Convert.ToString(e.Source);
MessageBox.Show(Message);
e.Handled = true; // set to true and MainWindow handler won't be triggered
return;
}
}

GrandChild - bottom level
<UserControl x:Class="RoutedEventDemo.GrandChild"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlnsBig Grin | :-D ="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Background="LightGray"
d:DesignHeight="300" d:DesignWidth="300">
<stackpanel>
<Label>GrandChild</Label>
<Button Name="btnGrandChild" Click="btnGrandChild_Click_1">Button from GrandChild</Button>



public partial class GrandChild : UserControl
{
#region Routed Event
public static readonly RoutedEvent GrandChildRoutedEvClickEvent = EventManager.RegisterRoutedEvent("GrandChildRoutedEvClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(GrandChild));

// Provide CLR accessors for the event
public event RoutedEventHandler GrandChildRoutedEvClick
{
add { AddHandler(GrandChildRoutedEvClickEvent, value); }
remove { RemoveHandler(GrandChildRoutedEvClickEvent, value); }
}
#endregion

#region Attached Event
public static readonly RoutedEvent GrandChildAttachedEvClickEvent =
EventManager.RegisterRoutedEvent("GrandChildAttachedEvClick",
RoutingStrategy.Bubble,
typeof(RoutedEventHandler),
typeof(GrandChild));

public static void AddGrandChildAttachedEvClickHandler(DependencyObject o, RoutedEventHandler handler)
{
((UIElement)o).AddHandler(GrandChild.GrandChildAttachedEvClickEvent, handler);
}
public static void RemoveGrandChildAttachedEvClickHandler(DependencyObject o, RoutedEventHandler handler)
{
((UIElement)o).RemoveHandler(GrandChild.GrandChildAttachedEvClickEvent, handler);
}
#endregion

public GrandChild()
{
InitializeComponent();
}

private void btnGrandChild_Click_1(object sender, RoutedEventArgs e)
{
this.RaiseEvent(new RoutedEventArgs(GrandChildRoutedEvClickEvent, this));
this.RaiseEvent(new RoutedEventArgs(GrandChildAttachedEvClickEvent, this));
return;
}
}
dev


modified 10-Jan-13 2:24am.

QuestionHow to play an Audio File After another has Finished in WPF MediaElement Pin
Vuyiswa Maseko4-Jan-13 3:58
memberVuyiswa Maseko4-Jan-13 3:58 
AnswerRe: How to play an Audio File After another has Finished in WPF MediaElement Pin
Pete O'Hanlon4-Jan-13 4:13
protectorPete O'Hanlon4-Jan-13 4:13 
GeneralRe: How to play an Audio File After another has Finished in WPF MediaElement Pin
Vuyiswa Maseko4-Jan-13 6:08
memberVuyiswa Maseko4-Jan-13 6:08 
QuestionWPF tutorial book website pdf Pin
frazzle-me1-Jan-13 10:44
memberfrazzle-me1-Jan-13 10:44 
AnswerRe: WPF tutorial book website pdf Pin
Richard MacCutchan1-Jan-13 22:31
mvpRichard MacCutchan1-Jan-13 22:31 
GeneralRe: WPF tutorial book website pdf Pin
frazzle-me2-Jan-13 1:47
memberfrazzle-me2-Jan-13 1:47 
GeneralRe: WPF tutorial book website pdf Pin
Pete O'Hanlon2-Jan-13 5:48
protectorPete O'Hanlon2-Jan-13 5:48 
GeneralRe: WPF tutorial book website pdf Pin
Richard MacCutchan2-Jan-13 6:09
mvpRichard MacCutchan2-Jan-13 6:09 
GeneralRe: WPF tutorial book website pdf Pin
Pete O'Hanlon2-Jan-13 6:10
protectorPete O'Hanlon2-Jan-13 6:10 
AnswerRe: WPF tutorial book website pdf Pin
Abhinav S2-Jan-13 2:21
mvpAbhinav S2-Jan-13 2:21 
GeneralRe: WPF tutorial book website pdf Pin
frazzle-me2-Jan-13 7:08
memberfrazzle-me2-Jan-13 7:08 
AnswerRe: WPF tutorial book website pdf Pin
Fernando E. Braz2-Jan-13 5:15
memberFernando E. Braz2-Jan-13 5:15 
GeneralRe: WPF tutorial book website pdf Pin
frazzle-me2-Jan-13 7:07
memberfrazzle-me2-Jan-13 7:07 
QuestionWPF Tab Styling Question #2 Pin
Kevin Marois1-Jan-13 8:59
memberKevin Marois1-Jan-13 8:59 
AnswerRe: WPF Tab Styling Question #2 Pin
Pete O'Hanlon1-Jan-13 9:48
protectorPete O'Hanlon1-Jan-13 9:48 
GeneralRe: WPF Tab Styling Question #2 Pin
Kevin Marois1-Jan-13 9:55
memberKevin Marois1-Jan-13 9:55 
GeneralRe: WPF Tab Styling Question #2 Pin
Pete O'Hanlon1-Jan-13 9:56
protectorPete O'Hanlon1-Jan-13 9:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web02 | 2.8.170622.1 | Last Updated 23 Jun 2017
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid