Click here to Skip to main content
15,884,353 members
Home / Discussions / WPF
   

WPF

 
GeneralRe: WPF - Sync Combox Pin
SledgeHammer0114-Jan-13 9:34
SledgeHammer0114-Jan-13 9:34 
GeneralRe: WPF - Sync Combox Pin
Kevin Marois23-Jan-13 17:41
professionalKevin Marois23-Jan-13 17:41 
QuestionStyle From Resource File Not Being Applied Pin
Kevin Marois12-Jan-13 10:20
professionalKevin Marois12-Jan-13 10:20 
AnswerRe: Style From Resource File Not Being Applied Pin
Richard MacCutchan12-Jan-13 23:44
mveRichard MacCutchan12-Jan-13 23:44 
GeneralRe: Style From Resource File Not Being Applied Pin
Mycroft Holmes13-Jan-13 0:45
professionalMycroft Holmes13-Jan-13 0:45 
GeneralRe: Style From Resource File Not Being Applied Pin
Richard MacCutchan13-Jan-13 1:24
mveRichard MacCutchan13-Jan-13 1:24 
GeneralRe: Style From Resource File Not Being Applied Pin
Kevin Marois13-Jan-13 10:58
professionalKevin Marois13-Jan-13 10:58 
QuestionRoutedEvent vs AttachedEvent - Syntax difference only? Confused Pin
devvvy9-Jan-13 20:05
devvvy9-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
Vimalsoft(Pty) Ltd4-Jan-13 3:58
professionalVimalsoft(Pty) Ltd4-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
mvePete O'Hanlon4-Jan-13 4:13 
GeneralRe: How to play an Audio File After another has Finished in WPF MediaElement Pin
Vimalsoft(Pty) Ltd4-Jan-13 6:08
professionalVimalsoft(Pty) Ltd4-Jan-13 6:08 
QuestionWPF tutorial book website pdf Pin
David C# Hobbyist.1-Jan-13 10:44
professionalDavid C# Hobbyist.1-Jan-13 10:44 
AnswerRe: WPF tutorial book website pdf Pin
Richard MacCutchan1-Jan-13 22:31
mveRichard MacCutchan1-Jan-13 22:31 
GeneralRe: WPF tutorial book website pdf Pin
David C# Hobbyist.2-Jan-13 1:47
professionalDavid C# Hobbyist.2-Jan-13 1:47 
GeneralRe: WPF tutorial book website pdf Pin
Pete O'Hanlon2-Jan-13 5:48
mvePete O'Hanlon2-Jan-13 5:48 
GeneralRe: WPF tutorial book website pdf Pin
Richard MacCutchan2-Jan-13 6:09
mveRichard MacCutchan2-Jan-13 6:09 
GeneralRe: WPF tutorial book website pdf Pin
Pete O'Hanlon2-Jan-13 6:10
mvePete O'Hanlon2-Jan-13 6:10 
AnswerRe: WPF tutorial book website pdf Pin
Abhinav S2-Jan-13 2:21
Abhinav S2-Jan-13 2:21 
GeneralRe: WPF tutorial book website pdf Pin
David C# Hobbyist.2-Jan-13 7:08
professionalDavid C# Hobbyist.2-Jan-13 7:08 
AnswerRe: WPF tutorial book website pdf Pin
Fernando E. Braz2-Jan-13 5:15
Fernando E. Braz2-Jan-13 5:15 
GeneralRe: WPF tutorial book website pdf Pin
David C# Hobbyist.2-Jan-13 7:07
professionalDavid C# Hobbyist.2-Jan-13 7:07 
QuestionWPF Tab Styling Question #2 Pin
Kevin Marois1-Jan-13 8:59
professionalKevin Marois1-Jan-13 8:59 
AnswerRe: WPF Tab Styling Question #2 Pin
Pete O'Hanlon1-Jan-13 9:48
mvePete O'Hanlon1-Jan-13 9:48 
GeneralRe: WPF Tab Styling Question #2 Pin
Kevin Marois1-Jan-13 9:55
professionalKevin Marois1-Jan-13 9:55 
GeneralRe: WPF Tab Styling Question #2 Pin
Pete O'Hanlon1-Jan-13 9:56
mvePete 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.