小智 5
在C#中,事件只能从声明它们的类中调用.在Button的情况下,有一个名为OnClick的方法,它引发了ClickEvent但它受到了保护.所以你需要声明继承自Button的类并更改OnClick方法的可见性(或者声明一些调用base.OnClick的方法)
public class MyButton : Button
{
public new void OnClick()
{
base.OnClick();
}
}
Run Code Online (Sandbox Code Playgroud)
XAML的示例
<StackPanel Background="White" >
<my:MyButton x:Name="TestButton" Click="HandleClick" Content="Test" />
<TextBlock x:Name="Result" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
和代码背后:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
new Timer(TimerCall,null,0,1000);
}
private void TimerCall(object state)
{
Dispatcher.BeginInvoke(()=>TestButton.OnClick());
}
private void HandleClick(object sender, RoutedEventArgs e)
{
Result.Text = String.Format("Clicked on {0:HH:mm:ss}",DateTime.Now);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然直接调用事件处理程序总是更容易.
HandleClick(this,null)
Run Code Online (Sandbox Code Playgroud)
然后就不需要额外的管道了.
| 归档时间: |
|
| 查看次数: |
8710 次 |
| 最近记录: |