using System;
using System.Windows ;
using System.Windows .Input ;
namespace WpfLib.Behaviors
{
public class UIElementHelper
{
public static ICommand GetMouseDownCommand( DependencyObject obj)
{
return ( ICommand) obj.GetValue ( MouseDownCommandProperty) ;
}
public static void SetMouseDownCommand( DependencyObject obj, ICommand value)
{
obj.SetValue ( MouseDownCommandProperty, value) ;
}
// Using a DependencyProperty as the backing store for MouseDownCommand. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MouseDownCommandProperty =
DependencyProperty.RegisterAttached ( "MouseDownCommand" , typeof( ICommand) , typeof( UIElementHelper) , new PropertyMetadata( null , PropertyChanged) ) ;
public static void PropertyChanged( DependencyObject s, DependencyPropertyChangedEventArgs e)
{
var cmd = e.NewValue as ICommand;
if ( cmd != null )
{
var element = s as UIElement;
element.MouseDown += ( sender, ex) =>
{
cmd.Execute ( ex) ;
} ;
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uV2luZG93czsKdXNpbmcgU3lzdGVtLldpbmRvd3MuSW5wdXQ7CgpuYW1lc3BhY2UgV3BmTGliLkJlaGF2aW9ycwp7CiAgICBwdWJsaWMgY2xhc3MgVUlFbGVtZW50SGVscGVyCiAgICB7CiAgICAgICAgcHVibGljIHN0YXRpYyBJQ29tbWFuZCBHZXRNb3VzZURvd25Db21tYW5kKERlcGVuZGVuY3lPYmplY3Qgb2JqKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIChJQ29tbWFuZClvYmouR2V0VmFsdWUoTW91c2VEb3duQ29tbWFuZFByb3BlcnR5KTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBTZXRNb3VzZURvd25Db21tYW5kKERlcGVuZGVuY3lPYmplY3Qgb2JqLCBJQ29tbWFuZCB2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAgIG9iai5TZXRWYWx1ZShNb3VzZURvd25Db21tYW5kUHJvcGVydHksIHZhbHVlKTsKICAgICAgICB9CgogICAgICAgIC8vIFVzaW5nIGEgRGVwZW5kZW5jeVByb3BlcnR5IGFzIHRoZSBiYWNraW5nIHN0b3JlIGZvciBNb3VzZURvd25Db21tYW5kLiAgVGhpcyBlbmFibGVzIGFuaW1hdGlvbiwgc3R5bGluZywgYmluZGluZywgZXRjLi4uCiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBEZXBlbmRlbmN5UHJvcGVydHkgTW91c2VEb3duQ29tbWFuZFByb3BlcnR5ID0KICAgICAgICAgICAgRGVwZW5kZW5jeVByb3BlcnR5LlJlZ2lzdGVyQXR0YWNoZWQoIk1vdXNlRG93bkNvbW1hbmQiLCB0eXBlb2YoSUNvbW1hbmQpLCB0eXBlb2YoVUlFbGVtZW50SGVscGVyKSwgbmV3IFByb3BlcnR5TWV0YWRhdGEobnVsbCwgUHJvcGVydHlDaGFuZ2VkKSk7CiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFByb3BlcnR5Q2hhbmdlZChEZXBlbmRlbmN5T2JqZWN0IHMsIERlcGVuZGVuY3lQcm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MgZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBjbWQgPSBlLk5ld1ZhbHVlIGFzIElDb21tYW5kOwogICAgICAgICAgICBpZiAoY21kICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBlbGVtZW50ID0gcyBhcyBVSUVsZW1lbnQ7CiAgICAgICAgICAgICAgICBlbGVtZW50Lk1vdXNlRG93biArPSAoc2VuZGVyLCBleCkgPT4KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjbWQuRXhlY3V0ZShleCk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==
compilation info
prog.cs(9,52): error CS0246: The type or namespace name `DependencyObject' could not be found. Are you missing an assembly reference?
prog.cs(14,48): error CS0246: The type or namespace name `DependencyObject' could not be found. Are you missing an assembly reference?
prog.cs(20,32): error CS0246: The type or namespace name `DependencyProperty' could not be found. Are you missing an assembly reference?
prog.cs(22,44): error CS0246: The type or namespace name `DependencyObject' could not be found. Are you missing an assembly reference?
prog.cs(22,64): error CS0246: The type or namespace name `DependencyPropertyChangedEventArgs' could not be found. Are you missing an assembly reference?
Compilation failed: 5 error(s), 0 warnings
stdout