首页 > 解决方案 > 在单个事件中访问通用发件人的属性 (wpf)

问题描述

我制作了一个包含不同颜色名称的树视图。每种颜色都有其各自的前景(例如,具有 Header="Red" 的树项目视图也有 Foreground="Red")

现在,我想根据用户双击的项目来改变窗口的背景颜色。例如,如果用户单击“红色”,则窗口背景变为红色。
另外,我只想创建一个命令/事件来执行此操作,因此所有树视图项的 MouseDoubleClick 属性都可以使用它。

有没有办法在代码隐藏中访问项目的前景?
我正在尝试以下方法,但它不起作用:

public void ColorChanger(object sender, MouseButtonEventArgs e)
{   
    this.Background= sender as TreeViewItem.Foreground; 
}

标签: c#wpf

解决方案


这应该可以工作,前提senderTreeViewItem

public void ColorChanger(object sender, MouseButtonEventArgs e)
{
    if (sender is TreeViewItem menuItem)
        this.Background = menuItem.Foreground;
}

推荐阅读