WPF c#在事件中更改发件人属性

时间:2013-12-06 12:11:35

标签: c# wpf events properties sender

是否可以在事件中更改发件人的财产?

我有自己的控件在wpf中有10个图像控件。 我设置了所有鼠标输入和鼠标离开事件。 所有这些事件都是相同的(更改大小和Z索引),但对于特定的图像。

在事件中更改发件人的属性我将只有2个事件的方法,而不是20个。 当我试图更改发件人的财产时,我看到它只是读取。

有可能吗?

2 个答案:

答案 0 :(得分:0)

将所有控件指向同一个处理程序。您可以在设计时或通过代码执行此操作。

在处理程序中将发送者转换为控件类型。

现在,当您更改其属性时,您正在更改引发事件的控件的属性

在您尝试访问其成员之前,PS不要忘记检查演员表是否有效。

答案 1 :(得分:0)

在这里你可以在xaml

中做到这一点
/ <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void image1_MouseEnter(object sender, MouseEventArgs e)
        {
            //put your code here and all your images will points here 
        }

        private void image1_MouseLeave(object sender, MouseEventArgs e)
        {
             //put your code here and all your images will points here 
        }
    }
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Image Height="51" HorizontalAlignment="Left" Margin="91,116,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="61" MouseEnter="image1_MouseEnter" MouseLeave="image1_MouseLeave" />
        <Image Height="51" HorizontalAlignment="Left" Margin="91,116,0,0" Name="image2" Stretch="Fill" VerticalAlignment="Top" Width="61" MouseEnter="image1_MouseEnter" MouseLeave="image1_MouseLeave" />
        <Image Height="51" HorizontalAlignment="Left" Margin="91,116,0,0" Name="image3" Stretch="Fill" VerticalAlignment="Top" Width="61" MouseEnter="image1_MouseEnter" MouseLeave="image1_MouseLeave" />
        <Image Height="51" HorizontalAlignment="Left" Margin="91,116,0,0" Name="image4" Stretch="Fill" VerticalAlignment="Top" Width="61" MouseEnter="image1_MouseEnter" MouseLeave="image1_MouseLeave" />
    </Grid>
</Window>

//这里的代码在

后面
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        image1.MouseEnter += image1_MouseEnter;
        image2.MouseEnter += image1_MouseEnter;
        image3.MouseEnter += image1_MouseEnter;
        image4.MouseEnter += image1_MouseEnter;


        image1.MouseEnter += image1_MouseLeave;
        image2.MouseEnter += image1_MouseLeave;
        image3.MouseEnter += image1_MouseLeave;
        image4.MouseEnter += image1_MouseLeave;

    }

    private void image1_MouseEnter(object sender, MouseEventArgs e)
    {

    }

    private void image1_MouseLeave(object sender, MouseEventArgs e)
    {

    }
}