C# “全局”事件处理程序
我找了很久,找不到这个问题的答案。这可能只是一个不知道要寻找什么的问题。是否可以为FrameworkElements提供全局处理程序 例如: 第1页C# “全局”事件处理程序,c#,wpf,windows-phone-7,windows-phone-8,C#,Wpf,Windows Phone 7,Windows Phone 8,我找了很久,找不到这个问题的答案。这可能只是一个不知道要寻找什么的问题。是否可以为FrameworkElements提供全局处理程序 例如: 第1页 <Grid x:Name="Grid1" Unloaded="GlobalHandler"/> 创建一个具有相同签名的静态方法,然后在页面中从各个处理程序调用该静态方法 public class EventHandlerHelper { public static GlobalUnload(object sender, Route
<Grid x:Name="Grid1" Unloaded="GlobalHandler"/>
创建一个具有相同签名的静态方法,然后在页面中从各个处理程序调用该静态方法
public class EventHandlerHelper
{
public static GlobalUnload(object sender, RoutedEventArgs e)
{
// work
}
}
public class Page1
{
public void GlobalHandler(object sender, RoutedEventArgs e)
{
EventHandlerHelper.GlobalUnload(sender, e);
}
}
public class Page2
{
public void GlobalHandler(object sender, RoutedEventArgs e)
{
EventHandlerHelper.GlobalUnload(sender, e);
}
}
创建一个具有相同签名的静态方法,然后在页面中从各个处理程序调用该静态方法
public class EventHandlerHelper
{
public static GlobalUnload(object sender, RoutedEventArgs e)
{
// work
}
}
public class Page1
{
public void GlobalHandler(object sender, RoutedEventArgs e)
{
EventHandlerHelper.GlobalUnload(sender, e);
}
}
public class Page2
{
public void GlobalHandler(object sender, RoutedEventArgs e)
{
EventHandlerHelper.GlobalUnload(sender, e);
}
}
如果您想更多地使用XAML,您可以在ResourceDictionary中为样式声明一个EventSetter,并将所述字典合并到任何需要它的页面中 从这里直接感谢用户 然后将其添加到每个页面的XAML中
<Page>
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary1.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
<!-- rest of page -->
</Page>
如果您想更多地使用XAML,您可以在ResourceDictionary中为样式声明一个EventSetter,并将所述字典合并到任何需要它的页面中 从这里直接感谢用户 然后将其添加到每个页面的XAML中
<Page>
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary1.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
<!-- rest of page -->
</Page>
网格在不同的页面上。非常感谢。我想知道这样的事情,但仍然很好奇是否有一种方法可以做到这一点,而不必每次都调用静态方法。哦,好吧网格在不同的页面上。非常感谢。我想知道这样的事情,但仍然很好奇是否有一种方法可以做到这一点,而不必每次都调用静态方法。哦,好吧我投了更高的票。但这个答案对这个问题是无效的。Silverlight中没有事件设定者。我把它投了赞成票。但这个答案对这个问题是无效的。Silverlight中没有事件设定器。
void MyResourceDictionary_GlobalHandler(object sender, MouseButtonEventArgs e)
{
//Do something with grid here
}
<Page>
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary1.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
<!-- rest of page -->
</Page>