<Grid>
<StackPanel ButtonBase.Click="StackPanel_Click" Margin = "5">
<Button Name="btn1" Tag="jeden">Przycisk 1</Button>
<Button Name="btn2" Tag="dwa">Przycisk 2</Button>
<Button Name="btn3" Tag="trzy">Przycisk 3</Button>
</StackPanel>
</Grid>
namespace events
{
public partial class MainWindow : Window
{
Button b1;
public MainWindow()
{
InitializeComponent();
b1 = btn3;
}
private void StackPanel_Click(object sender, RoutedEventArgs e)
{
b1.Tag = "MY BUTTON";
MessageBox.Show( e.Source.ToString() +"\n"+ sender.ToString() + "\n" + (String)((FrameworkElement)e.Source).Tag);
b1.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent, this));
}
}
public abstract class ButtonBase : ContentControl
{
public static readonly RoutedEvent ClickEvent;
static ButtonBase()
{
ButtonBase.ClickEvent = EventManager.RegisterRoutedEvent("MyClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(ButtonBase));
}
public event RoutedEventHandler MyClick
{
add
{
base.AddHandler(ButtonBase.ClickEvent, value);
}
remove
{
base.RemoveHandler(ButtonBase.ClickEvent, value);
}
}
}
}
w kodzie powyżej użyłem tego jak w tutorialach ale nic się nie dzieje, nie wiem jak sprawić żeby coś się działo
mógłby ktoś wytłumaczyć jak używa się Routed Events i jak sprawić żeby się do czegoś przydało się to,?
z tego co rozumiem to RoutedEvent to np. click event ale okodowany w c# a nie w xamlu, dobrze rozumiem?