WPF控制到ContextMenu菜单图标

时间:2015-06-09 14:25:50

标签: c# wpf

设置

我在模板上有一系列拖放元素(WPF控件)。当这些模板元素堆叠时,我为用户提供了通过上下文菜单将其取消堆叠的功能。上下文菜单项在我创建的扩展类中的后台代码中生成。

问题

我想在相应的菜单项标题旁边的上下文菜单中提供元素图像作为图标。目前我尝试了一系列解决方案,但都没有。

尝试的解决方案

How can I convert a WPF control into an image?

Get a bitmap image from a Control view

MenuItem.Icon采用可视对象。不幸的是,当我把它的元素交给它时,它是一个视觉元素,因为元素是另一个视觉树的一部分而被炸弹。

所以我尝试了它,然后提供相同的DataContext。哪个有用,有点儿。在不深入的情况下,元素的大小与datacontext绑定,因此从后面的代码调整大小非常困难,而不会看起来像是一个巨大的黑客。

期望的结果

我想渲染我的WPF控件的图像并将其分配给MenuItem.Icon属性。此外,我需要能够在后面的代码中执行此操作。

1 个答案:

答案 0 :(得分:0)

要获取控件的图像,可以使用VisualBrush,Visual绑定到控件。有关转换(拉伸等)的示例可以在MSDN here找到。