Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
System.Windows
 Source Property
Collapse All/Expand All Collapse All
This page is specific to
Microsoft Visual Studio 11/.NET Framework 4.5

Other versions are also available for the following:
.NET Framework Class Library
RoutedEventArgs..::.Source Property

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Gets or sets a reference to the object that raised the event.

Namespace:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
Visual Basic
Public Property Source As Object
C#
public Object Source { get; set; }
Visual C++
public:
property Object^ Source {
	Object^ get ();
	void set (Object^ value);
}
F#
member Source : Object with get, set

Property Value

Type: System..::.Object
The object that raised the event.

For any bubbling routed event that has actually traveled the route beyond the element that raised it, and for any tunneling routed event that has not yet tunneled down to the element that raised it, the value of Source will be different than the value of the sender parameter of the event arguments class. Which of the two elements involved in the event is of the most importance in any given handler (Source, the element that raised it, or sender, the element that is currently handling it) is dependent on the application logic that your handler is addressing.

Setting this property is typically only done when overriding or implementing other APIs that adjust event sources, such as when class handling an event. Resetting apparent event sources from instance handlers is not recommended, particularly when the handler does not mark the event as handled.

If you do reset Source to report a different event source, OriginalSource will continue to report the source as first raised by the originating RaiseEvent call.

This example shows how to find the source element in an event handler.

The following example shows a Click event handler that is declared in a code-behind file. When a user clicks the button that the handler is attached to, the handler changes a property value. The handler code uses the Source property of the routed event data that is reported in the event arguments to change the Width property value on the Source element.

XAML
<Button Click="HandleClick">Button 1</Button>
Visual Basic
Private Sub HandleClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
    'You must cast the object as a Button element, or at least as FrameworkElement, to set Width
    Dim srcButton As Button
    srcButton = CType(e.Source, Button)
    srcButton.Width = 200
End Sub

C#
        void HandleClick(object sender, RoutedEventArgs e)
        {
            // You must cast the sender object as a Button element, or at least as FrameworkElement, to set Width
            Button srcButton = e.Source as Button;
			srcButton.Width = 200;
        }

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8 Release Preview, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2012 Microsoft. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker