【发布时间】:2015-06-09 22:59:17
【问题描述】:
设置
我在模板上有一系列拖放元素(WPF 控件)。当这些模板元素被堆叠时,我为用户提供了通过上下文菜单取消堆叠它们的能力。上下文菜单项是在我创建的扩展类的后面代码中生成的。
问题
我想提供一个元素的图像作为上下文菜单中的图标,在相应的菜单项标题旁边。目前我已经尝试了一系列解决方案,但都没有奏效。
尝试的解决方案
How can I convert a WPF control into an image?
Get a bitmap image from a Control view
MenuItem.Icon 采用可视对象。不幸的是,当我只是将我的元素(一个视觉元素)交给它时,它会爆炸,因为该元素是另一个视觉树的一部分。
所以我尝试克隆它,然后为其提供相同的 DataContext。哪个有效,有点。无需深入探讨,元素的大小与数据上下文绑定,因此很难从后面的代码中调整大小,而不会使它看起来像一个巨大的 hack。
期望的结果
我想渲染我的 WPF 控件的图像并将其分配给 MenuItem.Icon 属性。我还需要能够在后面的代码中做到这一点。
【问题讨论】:
-
是不能改变作为绑定源的图片的视觉尺寸(宽高)的问题吗?你提到了几个目标,但问题对我来说不是很清楚。
-
不,我只是想解释为什么不能将可视对象本身设置为 MenuItem.Icon。问题是我想将我的 WPF 控件转换为图像,然后适当缩放该图像,最后将其设置为 MenItem.Icon