gpt4 book ai didi

c# - 将彩色椭圆添加到 MenuItem

转载 作者:行者123 更新时间:2023-12-03 19:30:15 27 4
gpt4 key购买 nike

我想向我的 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);

我错过了什么或者这里出了什么问题?

预期结果是……。像这样:

                                                              enter image description here

最佳答案

不需要图像:图标对象。它可以是任何内容:任何视觉元素、任何值、任何类的任何实例。如果它是一个 View 模型,它将需要一个隐式的 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 和其他子元素。

关于c# - 将彩色椭圆添加到 MenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46712860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com