向 MenuItem 添加彩色椭圆
Add a colored Ellipse to MenuItem
我想在我的 ContextMenu
中的一些 MenuItems
添加一个 Ellipse
。
遗憾的是我无法让它工作[没有显示任何内容]。
Canvas canvas = new Canvas() { Height = 16, Width = 16 };
canvas.Children.Add(new System.Windows.Shapes.Ellipse()
{
Height = 16,
Width = 16,
Fill = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red)
});
System.Windows.Media.Imaging.RenderTargetBitmap bmp = new System.Windows.Media.Imaging.RenderTargetBitmap((int)canvas.Width, (int)canvas.Height, 96, 96, System.Windows.Media.PixelFormats.Default);
bmp.Render(canvas);
MenuItem tmp = new MenuItem();
tmp.Header = "Away";
tmp.Icon = new System.Windows.Controls.Image()
{
Source = bmp
};
AddContextMenuEntry(tmp);
我错过了什么或这里有什么问题?
预期的结果是……像这样:
不需要图片:Icon
是 object
。它可以是任何内容:任何视觉元素、任何值、任何 class 的任何实例。如果它是一个视图模型,它将需要一个隐式的 DataTemplate。但是一个红色的圆圈是一个快照。
MenuItem tmp = new MenuItem();
tmp.Header = "Away";
tmp.Icon = new System.Windows.Shapes.Ellipse()
{
Height = 16,
Width = 16,
Fill = System.Windows.Media.Brushes.Red
};
如果你想要更复杂的东西,你可以用 Canvas
代替,加上 Ellipse
和其他子元素。
我想在我的 ContextMenu
中的一些 MenuItems
添加一个 Ellipse
。
遗憾的是我无法让它工作[没有显示任何内容]。
Canvas canvas = new Canvas() { Height = 16, Width = 16 };
canvas.Children.Add(new System.Windows.Shapes.Ellipse()
{
Height = 16,
Width = 16,
Fill = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red)
});
System.Windows.Media.Imaging.RenderTargetBitmap bmp = new System.Windows.Media.Imaging.RenderTargetBitmap((int)canvas.Width, (int)canvas.Height, 96, 96, System.Windows.Media.PixelFormats.Default);
bmp.Render(canvas);
MenuItem tmp = new MenuItem();
tmp.Header = "Away";
tmp.Icon = new System.Windows.Controls.Image()
{
Source = bmp
};
AddContextMenuEntry(tmp);
我错过了什么或这里有什么问题?
预期的结果是……像这样:
不需要图片:Icon
是 object
。它可以是任何内容:任何视觉元素、任何值、任何 class 的任何实例。如果它是一个视图模型,它将需要一个隐式的 DataTemplate。但是一个红色的圆圈是一个快照。
MenuItem tmp = new MenuItem();
tmp.Header = "Away";
tmp.Icon = new System.Windows.Shapes.Ellipse()
{
Height = 16,
Width = 16,
Fill = System.Windows.Media.Brushes.Red
};
如果你想要更复杂的东西,你可以用 Canvas
代替,加上 Ellipse
和其他子元素。