gpt4 book ai didi

c# - 如何为相同类型的 UIElement 编写通用事件处理程序?

转载 作者:行者123 更新时间:2023-11-30 14:32:43 24 4
gpt4 key购买 nike

在 WPF 应用程序中,假设有“n”张图像类型的图片,如果单击任何图片(即图像类型),它的可见性应该崩溃。现在执行此操作的正常方法是编写代码以折叠每张图片的每个“点击”事件。
是否有另一种方法让应用程序可以理解,只要单击任何图像类型的 UIelement(图片),那么该特定元素(图片)就应该折叠?
我想减少代码,我该如何实现?

最佳答案

您可以利用这些是路由事件这一事实,并设置 single handler on a parent element .

这允许单个事件处理程序处理子控件的所有事件。事件参数的 OriginalSource 属性将提供被点击的 UIElement,例如,如果您订阅了 UIElement.MouseLeftButtonDown或类似的“共享”事件。


您可以通过在您的 XAML 中向您的容器中添加:

<Grid UIElement.MouseLeftButtonDown="CommonClickHandler">
<!-- Your elements here -->

然后,在你后面的代码中:

private void CommonClickHandler(object sender, MouseButtonEventArgs e)
{
Image picture = e.OriginalSource as Image; //OriginalSource is the original element
if (picture != null)
picture.Visibility = Visibility.Collapsed;
}

关于c# - 如何为相同类型的 UIElement 编写通用事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com